C/C++自定义方式实现字符串的大小写转换
接着上面的文章,实现了字符串的转换以后,便可对char*类型的字符串进行大小写统一化转换。
现在string.h和其他的头文件都提供了函数可对字符串进行大小写转换,但在这介绍的是自定义的方式实现,自定义方式实现大小写转换所花费的时间更短,但是有一个局限性,就是只能实现对字母的大小写转换。废话不多说,直接上代码。
统一小写转换:
同样的,统一大写转换:
需要注意的是,如果是const char*类型,编译
会报错,const char*是无法进行修改的,需要先转换成char*类型,转换方式请参见本人上一篇博文。
现在string.h和其他的头文件都提供了函数可对字符串进行大小写转换,但在这介绍的是自定义的方式实现,自定义方式实现大小写转换所花费的时间更短,但是有一个局限性,就是只能实现对字母的大小写转换。废话不多说,直接上代码。
统一小写转换:
int i;
for(i=0;buf[i]!='\0';i++){
if(buf[i]>='A'&&buf[i]<='Z'){
buf[i] += 32;
DN_LOGV("laozhuxinlu : buf %c: " , buf[i]);
continue;
}
}
执行完以后,buf内容会变成:hellothewrold。同样的,统一大写转换:
int i;
for(i=0;buf[i]!='\0';i++){
if(buf[i]>='a'&&buf[i]<='z'){
buf[i] -= 32;
DN_LOGV("laozhuxinlu : buf %c: " , buf[i]);
continue;
}
}
执行完以后,buf内容会变成:HELLOTHEWROLD。
需要注意的是,如果是const char*类型,编译
buf[i] += 32;
//or
buf[i] -= 32;
会报错,const char*是无法进行修改的,需要先转换成char*类型,转换方式请参见本人上一篇博文。