这段代码有什么问题?我不知道到底发生了什么。
#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发布于 2014-05-28 17:38:09
您需要将tolower的返回值分配给s,但是这将调用未定义的行为,因为字符串文本是不可修改的,因为它们放在内存的只读部分。你不能修改它。试一试这个
char s[]= "OKAY";
for (int i = 0; i < 4; i++)
s[i] = tolower(s[i]);发布于 2014-05-28 17:37:43
tolower函数返回输入字符的小写等价物。它不会修改它的位置。
发布于 2014-05-28 17:38:49
char s[] = "OKAY";
for (int i = 0; i < 4; i++)
s[i]=tolower(s[i]);https://stackoverflow.com/questions/23918294
复制相似问题