【发布时间】:2011-04-14 09:11:22
【问题描述】:
我正在尝试用 c 语言编写一个简单的代码(愚蠢的问题,但我正在学习),我不明白这段代码给了我一个错误......我一定做错了,我不知道我必须改变...对不起我的英语...在此先感谢大家
#include <stdio.h>
#include <ctype.h>
char* to_up(char* str_);
int main()
{
char any_phrase[] = "This is a phrase";
printf("%s\n", to_up(any_phrase));
printf("%s\n", to_up("this is another phrase"));
return 0;
}
char* to_up(char* str_)
{
int i;
for (i=0; str_[i]; i++)
str_[i] = toupper(str_[i]);
return str_;
}
【问题讨论】:
-
toupper()需要传递一个无符号字符(隐式转换为 int)或 EOF。你应该把它写成toupper((unsigned char)str_[i])。如果您收到“¿Cómo te llamas?”这样的短语,就会出现问题。