这段代码有什么问题?我无法找到正在发生的事情。
#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
答案 0 :(得分:4)
tolower
函数返回输入字符的小写等效项。它不会对其进行修改。
答案 1 :(得分:4)
您需要将tolower
的返回值分配给s
,但这将调用未定义的行为,因为字符串文字是不可修改的,因为它们位于内存的只读部分。你无法修改它。试试这个
char s[]= "OKAY";
for (int i = 0; i < 4; i++)
s[i] = tolower(s[i]);
答案 2 :(得分:1)
char s[] = "OKAY";
for (int i = 0; i < 4; i++)
s[i]=tolower(s[i]);