以下是我的方法,你可以参考一下。
- #include <stdio.h>
- #include <string.h>
- void wordToWORD(char *str,unsigned long num) //定义一个单词首字母转换函数,参数1为字符串,参数2为字符串长度
- {
-
- for(int i=0;i<=num;i++) //从字符串的第一个字符开始 遍历字符串
- {
- if(str[i]=='\0') //判断是否遍历到字符串末尾,是则退出
- return;
- if(i==0 && (str[i]>='a' && str[i]<='z')) //判断字符串首字符是否为小写字母,是则转换成大写字母
- {
- str[i]=str[i]-32; //小写字母转换成大写字母
- continue; //转换字符串首字母后结束本轮循环
- }
-
- if( (str[i]>='a' && str[i]<='z') && //判断当前遍历字符是否为小写字母以及该字符的前一字符是否是大写字母或者小写字母
- !((str[i-1]>='A' && str[i-1]<='Z') || //如果当前字符是小写字母且前一字符不是大小写字母,则进行大小写转换
- (str[i-1]>='a' && str[i-1]<='z'))) //这样做的好处是能将数字、空格及特殊符号后面的单词首字母也换成大写字母
- str[i]=str[i]-32; //小写字母转换成大写字母
-
- }
-
- return ;
- }
- int main()
- {
- char str[100]=""; //开辟一个能接收100个字符的字符串空间
- printf("请输入英文语句:\n"); //提示输入英文句子
- gets(str); //获取键盘输入,并将获得的字符串赋值给str
-
- wordToWORD(str,strlen(str)); //调用首字母转换函数,传入参数字符串及字符串长度
- printf("转换后输入语句:\n"); //提示输出大小写转换后的语句
- printf("%s\n",str); //输出大小写转换后的语句
-
- return 0;
- }
复制代码 |