【发布时间】:2021-08-14 18:46:02
【问题描述】:
当我运行代码时,我没有输出并且程序崩溃 有谁知道如何正确打印出 char 指针?
#include <stdio.h>
char *toUpperCase(char *str)
{
int i = 0;
while(str[i] != '\0')
{
str[i] = str[i] - 32;
i++;
}
return str;
}
int main()
{
printf("%s", toUpperCase("hello"));
return 0;
}
【问题讨论】:
-
您不能写入字符串文字。它们是只读的,所以这是未定义的行为。
-
另外,请考虑避免使用幻数以使您的意图更加清晰。而
while循环作为for循环会更好看。此外,当有非字母字符时,此功能无法正常工作:godbolt.org/z/YaYnzn99M
标签: c windows pointers char return-value