以下のコードは、次のように呼び出すと機能します。
char arr[] = "foobar";
reverse(arr);
しかし、読み取り専用部分を指しているため、このように呼び出すと機能しません
char*a = "foobar";
reverse(a);
今私の質問は、ユーザーがこのように電話をかけないようにする方法はありますか?
void reverse(char *str)
{
char * end = str;
char tmp;
if (str)
{
while (*end)
{
++end;
}
--end;
while (str < end)
{
tmp = *str;
*str++ = *end;
*end-- = tmp;
}
}
}