次の簡単な機能があります。
void reverse(char* str) {
if (str == NULL)
return;
char* end = str;
while(*end != NULL) {
end++;
}
end--;
while(str < end){
char temp = *str;
*str++ = *end;
*end-- = temp;
}
}
int main(int argc, char* argv[]) {
char* second = "SOMETHING\0";
cout << "Before Reverse String: " << second << '\n';
reverse(second);
cout << "Reverse String: " << second << '\n';
}
シンプルですね。ただし、セグメンテーション違反が数行発生しています
*str++ = *end
*end-- = temp
私は何が欠けていますか?
ありがとう!