Answers:
它在标准库中,这是实现这种功能的最直接的方法。因此,是的,只需遍历字符串并将每个字符转换为小写即可。
像这样的琐碎的事情:
#include <ctype.h>
for(int i = 0; str[i]; i++){
  str[i] = tolower(str[i]);
}
或者,如果您喜欢一种衬板,则可以使用JF Sebastian的这种衬板:
for ( ; *p; ++p) *p = tolower(*p);
              for ( ; *p; ++p) *p = tolower(*p);似乎更惯用。
                    char *,这会给我一个段错误,但是如果str是一个char数组则不会。有什么解释吗?
                    如果将自己限制为ASCII,则转换为小写字母等效于上升位0x60:
for(char *p = pstr; *p; ++p)
    *p = *p > 0x40 && *p < 0x5b ? *p | 0x60 : *p;
              for(char *p = pstr;*p;++p) *p=*p>='A'&&*p<='Z'?*p|0x60:*p;
                    tolower()。我的机器上是55.2与44.15。
                    int (*)(int)签名。这是用于性能测量的代码gist.github.com/370497
                    您只是在处理ASCII字符串,而没有语言环境问题吗?那是的,那将是一个很好的方法。
tolower()如果参数不在'A'..'Z'范围内,则保持不变。
                    如果在小写功能中需要Unicode支持,请参见以下问题: Light C Unicode库