狼爪标志为什么有的i是大写有的是小写转大写

音标大写的I与e的读音有什么不同:注意是大写的I,小写的我也会读。单词像bit, responsi_百度知道
音标大写的I与e的读音有什么不同:注意是大写的I,小写的我也会读。单词像bit, responsi
音标大写的I与e的读音有什么不同:注意是大写的I,小写的我也会读。单词像bit, resp憨紶封咳莩纠凤穴脯膜onsibility,middle
提问者采纳
音标的大写和小写i 都是同一个音标,只是英式和美式的区别, 字母e的发音是长音, 憨紶封咳莩纠凤穴脯膜而音标的大小写I 都是短音
我记得小写i读类似一的音,大写I读类似叶子的叶的后面发音,我拿不准。虽然我是打算学美式,难道middle这个单词读咪多不成?
提问者评价
太给力了,你的回答完美地解决了我的问题,非常感谢!
其他类似问题
读音的相关知识
等待您来回答
为您推荐:
下载知道APP
随时随地咨询
出门在外也不愁常用正则表达式(?i)忽略字母的大小写! - iwanttoknow7的专栏
- 博客频道 - CSDN.NET
12770人阅读
1。^/d+$  //匹配非负整数(正整数&+&0)&2。^[0-9]*[1-9][0-9]*$  //匹配正整数&3。^((-/d+)|(0+))$  //匹配非正整数(负整数&+&0)&4。^-[0-9]*[1-9][0-9]*$  //匹配负整数&5。^-?/d+$    //匹配整数&6。^/d+(/./d+)?$  //匹配非负浮点数(正浮点数&+&0)&7。^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$  //匹配正浮点数&8。^((-/d+(/./d+)?)|(0+(/.0+)?))$  //匹配非正浮点数(负浮点数&+&0)&9。^(-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匹配负浮点数&10。^(-?/d+)(/./d+)?$  //匹配浮点数&11。^[A-Za-z]+$  //匹配由26个英文字母组成的字符串&12。^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串&13。^[a-z]+$  //匹配由26个英文字母的小写组成的字符串&14。^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串&15。^/w+$  //匹配由数字、26个英文字母或者下划线组成的字符串&16。^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$    //匹配email地址&17。^[a-zA-z]+://匹配(/w+(-/w+)*)(/.(/w+(-/w+)*))*(/?/S*)?$  //匹配url&18。匹配中文字符的正则表达式:&[/u4e00-/u9fa5]19。匹配双字节字符(包括汉字在内):[^/x00-/xff]20。应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)String.prototype.len=function(){return&this.replace([^/x00-/xff]/g,"aa").}21。匹配空行的正则表达式:/n[/s|&]*/r22。匹配HTML标记的正则表达式:/&(.*)&.*&///1&|&(.*)&//&/&23。匹配首尾空格的正则表达式:(^/s*)|(/s*$)*&正则表达式用例&&*&1、^/S+[a-z&A-Z]$&不能为空&不能有空格&&只能是英文字母&&*&2、/S{6,}&&&&&&&&&不能为空&六位以上&&*&3、^/d+$&&&&&&&&&&不能有空格&不能非数字&&*&4、(.*)(/.jpg|/.bmp)$&只能是jpg和bmp格式&&*&5、^/d{4}/-/d{1,2}-/d{1,2}$&只能是2004-10-22格式&&*&6、^0$&&&&&&&&&&&&至少选一项&&*&7、^0{2,}$&&&&&&&&至少选两项&&*&8、^[/s|/S]{20,}$&不能为空&二十字以上&&*&9、^/+?[a-z0-9](([-+.]|[_]+)?[a-z0-9]+)*@([a-z0-9]+(/.|/-))+[a-z]{2,6}$邮件&&*&10、/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*([,;]/s*/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*)*&输入多个地址用逗号或空格分隔邮件&&*&11、^(/([0-9]+/))?[0-9]{7,8}$电话号码7位或8位或前面有区号例如(022)&&*&12、^[a-z&A-Z&0-9&_]+@[a-z&A-Z&0-9&_]+(/.[a-z&A-Z&0-9&_]+)+(/,[a-z&A-Z&0-9&_]+@[a-z&A-Z&0-9&_]+(/.[a-z&A-Z&0-9&_]+)+)*$&&*&&&&&只能是字母、数字、下划线;必须有@和.同时格式要规范&邮件&&*&13&^/w+@/w+(/./w+)+(/,/w+@/w+(/./w+)+)*$上面表达式也可以写成这样子,更精练。&&&&14&&&^/w+((-/w+)|(/./w+))*/@/w+((/.|-)/w+)*/./w+$&&&&&&&//&限定条件&&&&&&&&&final&String&CONDITION&=&"(?=.*[a-z])(?=.*[A-Z])(?=.*//d)";&&&&&&&&//&允许出现的字符&&&&&&&&&final&String&SPECIAL_CHAR&=&"[-A-Za-z0-9!$%&()/;&?{}//[//]^////]";&&&&&&&&//&数量&&&&&&&&&final&String&QUANTITY&=&"{8,16}";&&&1&楼的回复(?=.*[a-z])&表示当前位置后面必须出现&.*[a-z]&的字符,这个可以理解为必须出现小写字母。或者可以理解为某一个字符间的缝隙必须满足的条件,这个仅仅作为条件判断并不能匹配任何字符,因为这属于非捕获组中的环视(lookarround)零宽度匹配。举个大家常见的例子:表达式:Win(?=XP)现有字符串&WinXP&和&WinNT,在应用这个表达式时前者能与之进行匹配,为什么呢?当匹配器指示到&(?=XP)&时,也就是在&n&字母后面的缝隙,这个缝隙必须满足的条件是:后面的字符必须是&XP,如果是的话,匹配成功,否则匹配失败。由于(?=XP)&是匹配缝隙的,因此并不会把&XP&给匹配输出,而只输出了&Win&因此,这个表达式的语义可以看作是:找到后面为&XP&字符所有的&Win。假如,我们把表达式写成&Win(?=XP)(?=NT)&这样的话,那么这个语义是:找出后面为&XP&并且为&NT&字符所有的&Win&可以想象,这是个永远无法满足的匹配。(?=XP)(?=NT)&这个表示当前的缝隙必须同时满足的条件。把这个表达式再改一下,改成&Win(?=.*XP)(?=.*NT)&这个表示&Win&的后面必须出现XP&与&NT,位置和顺序都是无关的(这主要是&.*&的作用)。当然了这个表达式的效率是比较低的,得向后进行两次断言。如果字符串是&WincbaXPabcNT&这个字符串,当匹配指示器走到&n&后面的缝隙时开始进行向后断言,首先对&.*XP&进行断言,很明显能将&cbaXP&匹配成功,这时第一个断言完成,再对&.*NT&断言,可以看出&cbaXPabcNT&能与其匹配成功,这时第二个断言完成,因此表达式&Win(?=.*XP)(?=.*NT)&能对&WincbaXPabcNT&进行匹配。同理&WincbaNTabcXP&也是同样的效果。如果能理解上面的这些,对于&(?=.*[a-z])(?=.*[A-Z])(?=.*//d)&这个的理应该不会很难吧,这个只不过是必须同时满足三个条件。这个表达式在开始部分就进行断言,即索引为&0&的地方,也就是第一个字符的前面的缝隙,这个缝隙后面的字符必须满足&.*[a-z]&&.*[A-Z]&&.*//d&&三个条件,也就是说必后面必须出现至少一个小写字母、至少一个大写母、至少一个数字。至于表达式&2&的使用,也就是&[&&]&内字符的转义需要注意一下。^&和&-&在&[&&]&结构的表达式中是有一定意义的。[^abc]&表示除&abc&以外所有的字符,注意,这是放在最前面表示这个意思,如果改成&[a^bc]&这个仅表示&a&^&b&c&四个字符。如果需要匹配&^&这个字符的话,千万不要把它放在第一个,如果一定要放在第一个的话,得使用转义符。-&在&[&&]&表示字符的范围,比如&[a-z]&表示&a&与&z&之间的&26&个字母,[a-zA-Z]&这个表示&a-z&和&A-Z&的&52&个字母。使用范围得注意了,如果写成[z-a]&的话,在&pile&编译表达式时会对范围进行检查,这时会产生异常,因此在使用&-&范围时,后面的&Unicode&值必须大于等于前面的&Unicode值。如果要匹配&-&的话,尽量不要把&-&这个放在字符之间,可以放在&[&&]&的两边。比如&[-a-z]&这就能匹配&26&个小写字母和&-&了。当然了,我们也可以写成[a-z-A-Z]&这个可以匹配&52&字母和&-&,但是这样很不直观,我们宁愿写成[a-zA-Z-]&或者&[-a-zA-Z]&这样。&&&&&2:不以某某开头&,比如不以www开头Java&code&public&class&Test&{&&&&&public&static&void&main(String[]&args)&{&&&&&&&&String[]&strs&=&{&"abc1232",&"wwwadsf",&"awwwfas",&"wwadfsf",&"",&"ww",&"&",&"www"&};&&&&&&&&&String&regex&=&"(?:(?!^www).)*";&&&&&&&&&for(String&str&:&strs)&{&&&&&&&&&&&&&System.out.printf("%-7s&%s%n",&str,&str.matches(regex));&&&&&&&&}&&&&}}&(?!X)&专业名称为&Negative&Lookahead,表示字符间缝隙后面不允许出现的字符,即匹配字符间的缝隙,如果缝隙后的字符不是&X&的话,那这个缝隙就匹配成功。举个例子,aab&和&aac,现有表达式&aa(?!b)&这时我们能匹配到的字符串是&aac,因为&aa&的后面的缝隙之后不允许出现字符&b,因此只有&aac&进行了匹配。再来看个示例:&Java&code&public&class&Test&{&&&&public&static&void&main(String[]&args)&{&&&&&&&&String&str&=&"AQuickBrownFoxJumpsOverTheLazyDog";&&&&&&&&String[]&strs&=&str.split("(?&!^)(?=[A-Z])");&&&&&&&&for(String&s&:&strs)&{&&&&&&&&&&&&System.out.println(s);&&&&&&&&}&&&&&}}&根据大写字母拆分字符串。当然了,这个使用字符串进行分析同样也能进行拆分,但是使用正则表达式来拆的话更为便捷直观一些。在进行这种拆分时,由于在拆分后的字符数不能减少,因此只能使用零宽度的lookaround&功能进行匹配,lookaround&包括四个,即:&Java&code&(?=X)&(?!X)&(?&=X)&(?&!X)&来看一下这个表达式:(?&&!^)(?=[A-Z])前面说到过&(?!)&表示缝隙后面不允许出现的东西,而&(?&&!)&表示缝隙前不允许出现的东西。(?=)&表示缝隙后允许出现的东西,(?&&=)&表示缝隙前允许出现的东西。这个表达式在拆分时,根据零宽度匹配缝隙进行拆分的,这个缝隙必须满足以下条件:(?&&!^)&表示缝隙不允许前不能是行开始,即缝隙不能出现在首字母的前面。(?=[A-Z])&表示缝隙后面允许出现&A-Z&的大写字母。这时这个表达式就匹配了下面带有&|&的缝隙:&Java&code&A|Quick|Brown|Fox|Jumps|Over|The|Lazy|DogPS:不加&(?&!^)&的话,会变成:|A|Quick|Brown|Fox|Jumps|Over|The|Lazy|Dog&根据&split&的功能,正则表达式处理程序就根据上面的&|&将字符串给拆分开来了。3,不区分大小写不加任何限制的匹配是匹配分大小写的,但是正则表达式中可以进行改变,有两种方式:参数式和内嵌式。来看个示例:&Java&code&import&java.util.regex.Mimport&java.util.regex.Ppublic&class&Test&{&&&&public&static&void&main(String[]&args)&{&&&&&&&&String&str&=&"Book";&&&&&&&&&Pattern&pattern&=&pile("book");&&&&&&&&Matcher&matcher&=&pattern.matcher(str);&&&&&&&&System.out.println(matcher.matches());&&&&&}}&上面的这个表达式&book&是不能匹配字符串&Book&的,这时我们只要给定编译时的参数就可以了:Pattern&pattern&=&pile("book",&Pattern.CASE_INSENSITIVE);Pattern.CASE_INSENSITIVE&这是一个&int&类型的常量,值为&2。表示表达式忽略大小写进行区配。如果我们不采用&Pattern&和&Matcher&两个类来匹配的话,只是使用&String&的&matches&方法的话,我们就不能指定表达式的编译参数了,这时就需要采用内嵌标志表达式了,与&Pattern.CASE_INSENSITIVE对应的内嵌标志表达式是&(?i),它有四种形式:1,(?i)2,(?-i)3,(?i:X)4,(?-i:X)不带有&-&的是开标志,带有&-&的是关标志。把上面的代码改成这样:&Java&code&public&class&Test&{&&&&public&static&void&main(String[]&args)&{&&&&&&&&String&str&=&"Book";&&&&&&&&String&regex&=&"(?i)book";&&&&&&&&&System.out.println(str.matches(regex));&&&&}}&我们就达到了同样的效果,当然这样并不是最好的,因为字符串中只有&B&是大写的,我们没有必要把所有的字符都进行不区分大小写匹配,我们可以在打开标志,用&(?i)&的第二种形式马上关掉它:&&&&String&regex&=&"(?i)b(?-i)ook";这样的话,只有&b&是区分大小写了,而&(?-i)&后面的还是得区分大小写匹配的。这样写可能看上去很不顺眼,我们还能使用第&3&种形式直接指定某些字符是不区分大小写的。&&&&String&regex&=&"(?i:b)ook";这样的表达式与上面的那个在语义上是相同的。就效率上肯定是优于一下子开,一下子关的。可见内嵌标志表达式要比指定编译参数的功能强大许多。使用建议:如果能确定某些字符的大小写时,尽量使用已确定的字符,对于不确定的可以采用(?i:X)&的方式指定。因此打开不区分大小写开关时,对匹配的性能是有一定影响的。思考一下:String&regex&=&"(?i)b(?-i:oo)k";&这个表达式的意思?另外:第&1&和第&4,我没看明白需要了解什么,请在下面的楼层中具体地说明一下。&&&1:多行匹配在默认的情况下&.&是不能匹配行结束符的(行结束符有&6&个,具体的可以看看&Pattern&的&API&DOC)同样,可以像不匹配大小写匹配那样使用编译参数:Pattern.DOTALL如果还得区分大小写的话,还得加上上面说到的&Pattern.CASE_INSENSITIVE&这个,举个例子:&Java&code&import&java.util.regex.Mimport&java.util.regex.Ppublic&class&Test&{&&&&public&static&void&main(String[]&args)&{&&&&&&&&String&str&=&"&table&&/n"&+&"&&tr&&/n"&+&"&&td&&/n"&+&"&Hello&World!&/n"&+&"&&/td&&/n"&+&"&&/tr&&/n"&+&"&/table&";&&&&&&&&String&regex&=&"&td&(.+?)&/td&";&&&&&&&&&Pattern&pattern&=&pile(regex);&&&&&&&&Matcher&matcher&=&pattern.matcher(str);&&&&&&&&while(matcher.find())&{&&&&&&&&&&&&&System.out.println(matcher.group(1).trim());&&&&&&&&&}&&&&}}&上面这个是不能从&str&抽取出东西的,因为&td&的后面带有换行符,我们只要更改一下:Pattern&pattern&=&pile(regex,&Pattern.DOTALL);这样就行了,如果&td&还得不区分大小写的话,再改成:&Java&code&Pattern&pattern&=&pile(regex,&Pattern.DOTALL&|&Pattern.CASE_INSENSITIVE);&这样的话,td&哪怕是大写的这个表达式都能把&td&之间的字符区抽取出来。当然和&Pattern.CASE_INSENSITIVE&一样,Pattern.DOTALL&也有内嵌标志表达式,即&(?s)s&的意思表示&single-line&就是忽略换行符什么的,只看成单行进行处理。这个表达式使用内嵌&(?s)&的话可以改为:&Java&code&String&regex&=&"(?s)&td&(.+?)&/td&";如果还要不区分大小写的话,再加上&i&标志:String&regex&=&"(?s)(?i)&td&(.+?)&/td&";但这样显得很拖沓,可以把它们合并起来:String&regex&=&"(?is)&td&(.+?)&/td&";&//&秩序无所谓&最后需要说明一下的是,我曾看到过由于不明白&DOTALL,为了让&.&匹配行结束符,直接把表达式写成:&Java&code&String&regex&=&"&td&((.|//s)+?)&/td&";&这样做是极其危险的,由于选择结构的匹配效率问题,这样做在比较长的字符串时会造成堆栈溢出,使程序崩溃,如果使用&DOTALL&或者&(?s)&的话就不会出现这种情况。4:2个单元的或操作|&称为多选结构,用于匹配&|&之中的任何一个,拿你的例子来说明:&Java&code&import&java.util.regex.Mimport&java.util.regex.Ppublic&class&Test&{&&&&&public&static&void&main(String[]&args)&{&&&&&&&&&String&str&=&"&img&src=/"http:///1.gif/"/&/n"&+&"&img&src=/"/1.gif/"/&/n"&+&"&img&src=/"/1.gif/"/&";&&&&&&&&String&regex&=&"&img//ssrc=/"http://(?:ww|3)/1.gif/"/&";&&&&&&&&Pattern&pattern&=&pile(regex);&&&&&&&&Matcher&matcher&=&pattern.matcher(str);&&&&&&&&&while(matcher.find())&{&&&&&&&&&&&&&System.out.println(matcher.group());&&&&&&&&&}&&&&&}}&注意到其中的&(?:ww|3)&在进行多选匹配时尽量找出多选中的规律,以减少多选的字符,www&和&3w&在最后一个字符可以共用,前面的不一样。(?:&)&的意思表示组成一组,如果没有&(?:&)&这样的话,表达式就变成了:&Java&code&String&regex&=&"&img//ssrc=/"http://ww|/1.gif/"/&";&这样的语义完全变掉了,|&是在一组中进行选择,由于上面的那个表达式中没有组,就把整个表达式作为了一组,使用&|&的话,就进行了整个表达式的多选结构了。这个表达式的意思是:匹配&&img&ssrc="http://ww&或者是&/1.gif"/&,这样的结果并不是我们所要的。我们仅仅需要在&ww&和&3&之间进行选择,这时只要把&ww&和&3&放在一组中进行多选择就可以了,变成&(?:ww|3)。还有,在多选结构中尽量把出现频率高的放在前面,这样可以加快匹配速度。多选结构的效率在传统型的引擎中是效率低下的,如果是单个字符的选择,比如&a&$&&&之中的一个,那就不要使用&(?:a|$|&)&了,可以直接使用字符类&[a$&]&就可以了。说了那么多,不知道是否明白了?&
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:33396次
排名:千里之外
原创:11篇
转载:16篇
(1)(1)(1)(1)(3)(1)(10)(3)(4)(1)(1)英文字母为什么有大小写英文字母是拉丁文字 但拉丁文字没有小写 那小写字母是怎么来的_百度作业帮
拍照搜题,秒出答案
英文字母为什么有大小写英文字母是拉丁文字 但拉丁文字没有小写 那小写字母是怎么来的
英文字母为什么有大小写英文字母是拉丁文字 但拉丁文字没有小写 那小写字母是怎么来的
英文字母并非是由英国人创造的,英文字母是在约3500年前由腓尼基人发明的.腓尼基人精于航海和经商,他们把极为有用的22个字母传到了希腊.希腊人经过增减定下了24个字母.英国人是在罗马人之后学到这些字母的.他们又增加了J,U和W,才形成今日的26个英文字母.英语书写中有大小写这是英语国家的习惯.因为名字或者国家的名字等等都要大写,表示尊重,英语字母分大写和小写两种形式.英语的句子大都是用小写字母来写的,何时使用大写字母是有严格的规则的.一、句子开头的第一个单词的第一个字母要大写,如:How are you?二、表示国名、某国人、某种语言的单词的首字母要大写,如:America,American,English.三、地名、山川河流、城市区县、村庄街道、企业单位名称等单词的首字母要大写,如:Asia,the Pacifc Ocean(太平洋),the Tianshan Mountains,the Yellow River,Beijing,TongXian(通县),Xicheng District(西城区),Lijiacun(李家村),the United Nations(联合国),Wenhui Middle School… 四、姓和名、年级、班级、序号等的首字母要大写,如:Lei Feng,Jim Green,Class Two,Grade One,Number Five… 五、车站广场公园的首字母要大写,如:Beijing Station,Tiananmen Square,Beihai Park… 六、节日、月份、星期的首字母要大写,如:National Day(国庆节),May Day,September,Monday… 七、报刊杂志的名称、文章标题的实词首字母要大写,如:China High School Students(中国中学生报),Time(时代周刊),The Fox and the Lion (狐狸和狮子)…… 八、人称代词I、人的称谓的首字母要大写,如:Am I in class Two?Mr. Liu,Dr. Bethune… 九、某些缩略词的字母也要大写,如:TV,CCTV,USA.
拉丁文字没有小写?有啊。。。
英国祖宗的规定和历史演变中的约定俗成;汉语的繁体字和简化字也都不是哪一个人发明的。您现在的位置: &
小写金额转换为大写金额(C实现)
小写金额转换为大写金额(C实现)
  银行、单位和个人填写的各种票据和结算凭证是办理支付结算和现金收付的重要依据,直接关系到支付结算的准确、及时和安全。票据和结算凭证是银行、单位和个人凭以记载帐务的会计凭证,是记载经济业务和明确经济责任的一种书面证明。因此,填写票据和结算凭证,必须做到标准化、规范化,要要素齐全、数字正确、字迹清晰、不错漏、不潦草,防止涂改。
  我的服务需要一个金额转换过程,本来想在网上找,但都是C++、JavaScript、Delphi的Demo,还没有C的。索性自己写一个。参考了其它的转换算法,对我有些启发。
  大多的算法都是直接分析字符串生成大写金额,即存在一个假设:源字符串的格式是正确的。在我的过程中,用状态机的方法分析源字符串,错误时,返回空指针(我可不敢保证传给我的过程的都是##.##)。 分析出源字符串中整数部有多少个数字,是否有小数,统计结果放在一个结构体中,整数和小数部分的数字分别放在两个整形数组里。
  有了统计数据就可以生成大写金额了。转换过程有个难点:要区分万、亿等“段”,特别是个位这个“段”,这个概念是在《小写转大写金额在C++中的实现》文章中提到的。在下面的程序中用j= ( size - i - 1 ) & 0x3,实际上是j = ( size - i - 1 ) % 4取模,j==0时为段尾,需要特殊处理。所有的处理都是围绕0来进行的,也就是说,0才是难点。
  特殊位置的0,按段分,段中第一个非0数字前的0,可能有多个;段中两个非0数字间的0;段尾的0;个位的0;十分位,角位置的0。
  另外,转换的一个重点是大写金额的写法,好像大多的算法都注重转换过程而对这个问题没有深究。我在文章后面附上转换规则。
  下面是代码
  /**&&&& * @brief 将源字符串中的小写金额转换为大写格式&&&& *&&&& * @param dest 目的字符串&&&& * @param src& 小写金额字符串&&&& * @return&&&& * - NULL 源字符串的格式错误,返回NULL&&&& * - 非NULL 目的字符串的首地址&&&& * @note 转换根据:中国人民银行会计司编写的最新《企业、银行正确办理支付结算&&&& *&&&&&& 指南》的第114页-第115页&&&& */&&& char* chineseFee( char* dest, char* src )&&& {&&&&&&& enum&&&&&&& {&&&&&&&&&&& START,&&&&&&&&&&&&&&&& //开始&&&&&&&&&&& MINUS,&&&&&&&&&&&&&&&& //负号&&&&&&&&&&& ZEROINT,&&&&&&&&&&&&&& //0整数&&&&&&&&&&& INTEGER,&&&&&&&&&&&&&& //整数&&&&&&&&&&& DECIMAL,&&&&&&&&&&&&&& //小数点&&&&&&&&&&& DECIMALfRACTION,&&&&&& //小数位&&&&&&&&&&& END,&&&&&&&&&&&&&&&&&& //结束&&&&&&&&&&& ERROR&&&&&&&&&&&&&&&&& //错误&&&&&&& } status = START;
  struct&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&& //0为正,1为负&&&&&&&&&&& int sizeI&&&&&&&&&&& int sizeD&&&&&&&&&&& int integer[10];&&&&&&&&&&& int decimal[10];&&&&&&& } feeI
  char* NumberChar[] =&&&&&&&&&&& { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };&&&&&&& char* UnitChar[] =&&&&&&&&&&& { "整", "圆", "拾", "佰","仟", "万", "拾", "佰", "仟", "亿",&&&&&&&&&&&&& "拾", "佰", "仟", "万亿", "拾", "佰", "仟", "亿亿",&&&&&&&&&&&&& "角", "分", "负", "人民币" };
  int&&&&& i, j,&&&&&&&&&&&& //循环变量&&&&&&& int&&&&& zeroTag&&&&&&& = 0,&&& //0标志&&&&&&&&&&&&&&&& decZeroTag&&&& = 0;
  char*&&& pDest&&&&&&&&& =&&&&&&& char*&&& pSrc&&&&&&&&&& =
  int*&&&& pInt&&&&&&&&&& = feeInfo.&&&&&&& int*&&&& pDec&&&&&&&&&& = feeInfo.
  //初始化&&&&&&& feeInfo.sizeInt&&&&&&& = 0;&&&&&&& feeInfo.sizeDecimal&&& = 0;&&&&&&& feeInfo.minus&&&&&&&&& = 0;
  //分析字符串&&&&&&& while( 1 )&&&&&&& {&&&&&&&&&&& switch ( *pSrc )&&&&&&&&&&& {&&&&&&&&&&&&&&& case '-' :&&&&&&&&&&&&&&&&&&& status = ( status == START ) ? MINUS : ERROR;&&&&&&&&&&&&&&&&&&& feeInfo.minus = ( status == MINUS ) ? 1 : 0;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& case '1' :&&&&&&&&&&&&&&& case '2' :&&&&&&&&&&&&&&& case '3' :&&&&&&&&&&&&&&& case '4' :&&&&&&&&&&&&&&& case '5' :&&&&&&&&&&&&&&& case '6' :&&&&&&&&&&&&&&& case '7' :&&&&&&&&&&&&&&& case '8' :&&&&&&&&&&&&&&& case '9' :&&&&&&&&&&&&&&& case '0' :
  if ( *pSrc == '0' && status == ZEROINT )//|| status == START ) )&&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&& status = ERROR;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&& if ( status == MINUS || status == START || status == INTEGER )&&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&& if ( *pSrc == '0' && ( status == MINUS || status == START ) )&&&&&&&&&&&&&&&&&&&&&&&&&&& status = ZEROINT;&&&&&&&&&&&&&&&&&&&&&&& else&&&&&&&&&&&&&&&&&&&&&&&&&&& status = INTEGER;&&&&&&&&&&&&&&&&&&&&&&& *pInt = (*pSrc) - 48;&&&&&&&&&&&&&&&&&&&&&&& ++pI&&&&&&&&&&&&&&&&&&&&&&& ++feeInfo.sizeI&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&& else if ( status == DECIMAL || status == DECIMALfRACTION )&&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&& status = DECIMALfRACTION;&&&&&&&&&&&&&&&&&&&&&&& *pDec = (*pSrc) - 48;&&&&&&&&&&&&&&&&&&&&&&& ++pD&&&&&&&&&&&&&&&&&&&&&&& ++feeInfo.sizeD&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&& else&&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&& status =ERROR;&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& case '.' :&&&&&&&&&&&&&&&&&&& status = ( status == INTEGER || status == ZEROINT )&&&&&&&&&&&&&&&&&&&&&&&&&&&& ? DECIMAL : ERROR;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& case '' :&&&&&&&&&&&&&&&&&&& status = ( status == INTEGER || status == DECIMALfRACTION&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& || status == ZEROINT ) ? END : ERROR;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& default :&&&&&&&&&&&&&&&&&&& status = ERROR;&&&&&&&&&&& }&&&&&&&&&&& if ( status == END )&&&&&&&&&&&&&&&&&&&&&&&&&& else if ( status == ERROR )&&&&&&&&&&&&&&& return NULL;
  ++pS&&&&&&& }
  //只有1位小数时,设置百分位为0,使下面代码不需要区分这两种情况&&&&&&& if ( feeInfo.sizeDecimal == 1 )&&&&&&& {&&&&&&&&&&& feeInfo.decimal[ 1 ] = 0;&&&&&&&&&&& ++feeInfo.sizeD&&&&&&& }
  //判断是否需要打印小数部分,有小数部且十分位和百分位不都为0&&&&&&& //需要打印小数部时,zeroTag设为0,否则设为1&&&&&&& if ( feeInfo.sizeDecimal == 0&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //没有小数&&&&&&&&&&& || ( !feeInfo.decimal[ 0 ] && !feeInfo.decimal[ 1 ] ) )&& //小数部都为0&&&&&&&&&&& decZeroTag = 1;&&&&&&& else&&&&&&&&&&& decZeroTag = 0;
  //printf( "int size: %d&&& decimal size: %d\n", feeInfo.sizeInt, feeInfo.sizeDecimal );
  strcpy( pDest, UnitChar[ 21 ] );&&&&&&&&&&&&&&&&& //初始化目标字符串-人民币
  if ( feeInfo.minus ) strcat( pDest, UnitChar[ 20 ] );&&& //负号
  //处理整数部分&&&&&&& size = feeInfo.sizeI&&&&&&& for( i = 0; i & ++i )&&&&&&& {&&&&&&&&&&& j = size - i - 1 & 0x3;&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //j = 0时为段尾&&&&&&&&&&& if ( feeInfo.integer[ i ] == 0 && j )&&&&&&&&&&&&&&& //处理非段尾0&&&&&&&&&&& {&&&&&&&&&&&&&&& zeroTag = 1;&&&&&&&&&&& }&&&&&&&&&&& else if ( feeInfo.integer[ i ] == 0 && !j )&&&&&&&&& //处理段尾0&&&&&&&&&&& {&&&&&&&&&&&&&&& if ( feeInfo.sizeInt == 1 && decZeroTag )&&&&&&& //特殊处理个位0&&&&&&&&&&&&&&&&&&& strcat( pDest, NumberChar[ feeInfo.integer[ i ] ] );&&&&&&&&&&&&&&& if ( feeInfo.sizeInt != 1 || decZeroTag )&&&&&&&&&&&&&&&&&&& strcat( pDest, UnitChar[ size - i ] );&&&&&&&&&&&&&&& zeroTag = 0;&&&&&&&&&&& }&&&&&&&&&&& else&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //处理非0&&&&&&&&&&& {&&&&&&&&&&&&&&& if ( zeroTag )&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&& strcat( pDest, NumberChar[ 0 ] );&&&&&&&&&&&&&&&&&&& zeroTag = 0;&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&& strcat( pDest, NumberChar[ feeInfo.integer[ i ] ] );&&&&&&&&&&&&&&& strcat( pDest, UnitChar[ size - i ] );&&&&&&&&&&&&&&& if ( !j ) zeroTag = 0;&&&&&&&&&&&&&&&&&&&&& //如果是段尾,设为非标志&&&&&&&&&&& }&&&&&&& }
  if ( decZeroTag )&&&&&&& {&&&&&&&&&&& strcat( pDest, UnitChar[ 0 ] );//没有小数部,打印"整"字符&&&&&&& }&&&&&&& else&&&&&&& {&&&&&&&&&&& //十分位&&&&&&&&&&& if ( feeInfo.decimal[ 0 ] )&&&&&&&&&&& {&&&&&&&&&&&&&&& strcat( pDest, NumberChar[ feeInfo.decimal[ 0 ] ] );&&&&&&&&&&&&&&& strcat( pDest, UnitChar[ 18 ] );&&&&&&&&&&& }&&&&&&&&&&& else if ( feeInfo.sizeInt != 1 || feeInfo.integer[ 0 ] )&&&&&&&&&&& {&&&&&&&&&&&&&&& strcat( pDest, NumberChar[ feeInfo.decimal[ 0 ] ] );&&&&&&&&&&& }
  //百分位不为0时&&&&&&&&&&& if ( feeInfo.decimal[ 1 ] )&&&&&&&&&&& {&&&&&&&&&&&&&&& strcat( pDest, NumberChar[ feeInfo.decimal[ 1 ] ] );&&&&&&&&&&&&&&& strcat( pDest, UnitChar[ 19 ] );&&&&&&&&&&& }&&&&&&& }&&&&&&&&&& }
  代码中有些地方没有注释清楚,要是有不明白的可以E-Mail我。
  参考: 小写转大写金额在C++中的实现
  正确填写票据和结算凭证的基本规定
  银行、单位和个人填写的各种票据和结算凭证是办理支付结算和现金收付的重要依据,直接关系到支付结算的准确、及时和安全。票据和结算凭证是银行、单位和个人凭以记载帐务的会计凭证,是记载经济业务和明确经济责任的一种书面证明。因此,填写票据和结算凭证,必须做到标准化、规范化,要要素齐全、数字正确、字迹清晰、不错漏、不潦草,防止涂改。
  一、 中文大写金额数字应用正楷或行书填写,如壹(壹)、贰(贰)、叁、肆(肆)、伍(伍)、陆(陆)、柒、捌、玖、拾、伯、仟、万(万)、亿、元、角、分、零、整(正)等字样。不得用一、二(两)、三、四、五、六、七、八、九、十、念、毛、另(或0)填写,不得自造简化字。如果金额数字书写中使用繁体字,也应受理。
  二、 中文大写金额数字到"元"为止的,在"元"之后,应写"整"(或"正")字,在"角"之后可以不写"整"(或"正")字。数字有"分"的,"分"后面不写"整"(或"正")字。
  三、 中文大写金额数字前应标明"人民币"字样,大写金额数字应紧接"人民币"字样填写,不得留有空白。大写金额数字前未印"人民币"字样的,应加填"人民币"三字。在票据和结算凭证大写金额栏内不得预印固定的"仟、佰、拾、万、仟、佰、拾、元、角、分字样。
  四、阿拉伯小写金额数字中有"0"时,中文大写应按照汉语语言规律、金额数字构成和防止涂改的要求进行书写。举例如下:
  (一)阿拉伯数字中间有"0"时,中文大写金额要写"零"字。如¥1,409.50,应写成人民币壹仟肆佰零玖元伍角。&&& (二)阿拉伯数字中间连续有几个"0"时,中文大写金额中间可以只写一个"零"字。如¥6,007.14,应写成人民币陆仟零柒元壹角肆分。&&& (三)阿拉伯金额数字万位或元位是"0",或者数字中间连续有几个"0",万位、元位也是"0",但千位、角位不是"0"时,中文大写金额中可以只写一个零字,也可以不写"零"字。如¥1,680.32,应写成人民币壹仟陆佰捌拾元零叁角贰分,或者写成人民币壹仟陆佰捌拾元叁角贰分;又如¥107,000.53,应写成人民币壹拾万柒仟元零伍角叁分,或者写成人民币壹拾万零柒仟元伍角叁分。&&& (四)阿拉伯金额数字角位是"0",而分位不是"0"时,中文大写金额"元"后面应写"零"字。如¥16,409.02,应写成人民币壹万陆仟肆佰零玖元零贰分;又如¥325.04,应写成人民币叁佰贰拾伍元零肆分。
  五、阿拉伯小写金额数字前面,均应填写人民币符号"¥"(或草写)。阿拉伯小写金额数字要认真填写,不得连写分辨不清。
  六、票据的出票日期必须使用中文大写。为防止变造票据的出票日期,在填写月、日时,月为壹、贰和壹拾的,日为壹至玖和壹拾、贰拾和叁拾的,应在其前加"零"; 日为拾壹至拾玖的,应在其前加"壹"。如1月15日,应写成零壹月壹拾伍日。再如10月20日,应写成零壹拾月零贰拾日。
  七、票据出票日期使用小写填写的,银行不予受理。大写日期未按要求规范填写的,银行可予受理,但由此造成损失的,由出票人自行承担。
  引自中国人民银行会计司编写的最新《企业、银行正确办理支付结算指南》的第114页-第115页
&&&主编推荐
&&&热门试卷
&&&最新视频
&&&热门阅读
&&&最新问答
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-

我要回帖

更多关于 大小写 的文章

 

随机推荐