【发布时间】:2014-05-28 17:35:21
【问题描述】:
这段代码有什么问题?我不知道发生了什么。
#include <stdio.h>
#include <ctype.h>
int main(void)
{
char *s = "OKAY";
for (int i = 0; i < 4; i++)
tolower(s[i]);
printf("\n%s\n", s);
return 0;
}
输出:
OKAY
【问题讨论】:
-
阅读
tolower()的文档,想想你的代码做了什么。 -
其实没有什么“代码有问题”。
-
顺便说一句,
tolower()已经过去了一个世纪。它不处理一些边缘情况(德语 ß/SS,土耳其语 I/ı/i,...)。您可能需要 ICU 之类的东西来进行正确的病例映射。