【发布时间】:2021-11-27 02:40:24
【问题描述】:
这段代码是一个简单的“转换为大写”程序,但是,当我编译时,我得到了上面标题的错误。有什么解决办法吗?
char *input = argv[1];
printf("%s\n", input);
char toUpper = ("%s\n",toupper(input));
printf("%s\n", toUpper);
【问题讨论】:
-
char toUpper = ("%s\n",toupper(input));这应该是什么? -
toupper()的参数必须是单个字符。但input是指向字符的指针,而不是字符。 -
您的
printf代码似乎与toUpper的分配混合在一起。 -
您是想将整个参数转换为大写,还是只是第一个字符?如果要转换整个参数,则需要遍历字符,因为
toupper()一次只能处理一个字符。 -
你需要复习一下字符串和字符的区别。
标签: c pointers casting string.h