Ear*_*rlz 139
它位于标准库中,这是我可以看到实现这种功能的最直接的方式.所以是的,只需遍历字符串并将每个字符转换为小写.
像这样的小事:
#include <ctype.h>
for(int i = 0; str[i]; i++){
str[i] = tolower(str[i]);
}
Run Code Online (Sandbox Code Playgroud)
或者如果您更喜欢一个衬垫,那么您可以使用JF Sebastian的这个衬垫:
for ( ; *p; ++p) *p = tolower(*p);
Run Code Online (Sandbox Code Playgroud)
转换为小写相当于上升位0x60:
for(char *p = pstr;*p;++p) *p=*p>0x40&&*p<0x5b?*p|0x60:*p;
Run Code Online (Sandbox Code Playgroud)
(当然是拉丁代码页)
循环指针以获得更好的性能:
#include <ctype.h>
char* toLower(char* s) {
for(char *p=s; *p; p++) *p=tolower(*p);
return s;
}
char* toUpper(char* s) {
for(char *p=s; *p; p++) *p=toupper(*p);
return s;
}
Run Code Online (Sandbox Code Playgroud)