文字列の文字を大文字に変換しようとしています
int main (void)
{
int i = 0;
int n = 0;
static char *str[] = { "wow",
"RACEcar",
"No devil lived on.",
"rotor" };
for(i = 0; i < strlen(*str); i++)
{
if(str[i] != NULL)
{
n = function(str[i]);
}
}
return 0;
}
int function(char* x)
{
int i = 0;
int j = strlen(x);
char c;
for(i = 0; i < j; i++)
{
c = toupper(x[i]);
x[i] = c;
}
return 0;
}
このエラーが発生する理由がわからないexc bad access, code 2
行でエラーが発生しました。別の文字列を作成して c を新しい文字列に割り当てる必要がありますか? x[i] = c;
toupper は文字の大文字バージョンを返しますが、実際には要素自体を変更しませんでした。