【发布时间】:2012-05-28 05:26:15
【问题描述】:
我有这个代码:
void changeToCapital(char* str)
{
int i;
for (i=0; i<strlen(str); i++)
{
str[i] =str[i] -32;
}
}
这个方法应该得到一个char* 变量,并将其更改为大写。出于某种原因,我收到一条错误消息 EXECUTE_BAD_ACCESS。
调用函数:
char* s = "itzik";
changeToCapital(s);
printf("%s\n",s);
我在这里做错了什么?
【问题讨论】:
-
您是否尝试修改字符串文字?
-
听起来像指针问题 -
str崩溃时指向的字符串是什么? -
我在做str[i],那不是字符吗?
-
你的函数需要一个
char *。你需要通过&str[i] -
@MikeKwan 不,实施很好(好吧,如果实施得当,它可能会很好......)。问题是他正在修改字符串文字。