【发布时间】:2014-01-10 11:44:59
【问题描述】:
我正在尝试编写一个大写函数,它将字符串中的所有小写字符转换为大写字符。
但是,我的代码中出现 Bus 10 错误。我知道不能在 C 中修改字符串文字;所以,我不确定这是否是正确的方法。
我的代码如下:
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
int uppercase(char source[])
{
int i;
for(i=0; i<=strlen(source); ++i)
if (source[i]>= 'a' && source[i]<= 'z')
source[i]= source[i]-'a' +'A';
else
source[i]=source[i];
}
int main(){
uppercase("cold");
return 0;
}
理想情况下,这个函数应该返回 COLD。我想错误在于我的整个 if 语句。
【问题讨论】:
-
char s[] = "cold"; uppercase(s); -
您已经回答了自己的问题。 “返回”是什么意思?
-
那么
source[i] = source[i]到底有什么意义?? -
对不起,我应该更清楚。在这种情况下,我不知道如何解决该错误。关键是不做任何改变。我猜这是多余的?
-
我猜你也应该包括大写()函数/方法。