C++的Standard Library并没有提供将std::string转成大写和小写的功能,只有在提供将char转成大写(toupper)和小写(tolower)的功能而已,在此利用STL的transform配合toupper/tolower,完成std::string转换大(小)写的功能,也看到Generics的威力,一个transform function,可以适用於任何型别,且只要自己提供Algorithm,就可完成任何Transform的动作。很简单,如果不是自己实现的话,string里面有做好的方法
12
String str="ABCDEFG";str = strtoLowerCase();
这样str的值就是小写的了"abcdefg"有2个方法:
toLowerCase()
使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
toLowerCase(Locale locale)
使用给定 Locale 的规则将此 String 中的所有字符都转换为小写
思路:利用对应大小写字符的ASCII码相差32,则遍历输入的字符串,判断每个字符是大写字母还是小写字母,如果是大写字母则自加32就是对应的小写字母,如果是小写字母则自减32就是其对应的大写字母。
参考代码:
#include <stdioh>int main()
{
char a[100];
int i;
gets(a);
for(i=0;a[i]!='\0';i++)
if(a[i]>='A'&&a[i]<='Z')//表示是大写字母
a[i]+=32;
else if(a[i]>='a'&&a[i]<='z')//表示是小写字母
a[i]-=32;
puts(a);
return 0;
}
/
输出:
asfDJY435
ASFdjy435
/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)