我已經編寫了下面的函數,將在C反向的字符串:在C中反轉字符串的函數 - 如果是字符串文字呢?
void reverse(char *str) {
int length = strlen(str) - 1;
for (int i=0; i < length/2; i++) {
char tmp = str[i];
str[i] = str[length - i];
str[length - i] = tmp;
}
}
這個作品,如果我這樣做:
char a[]="Hello";
reverse(a);
但如果我把它傳遞一個字符串,如:
char *a = "Hello";
它不起作用。
那麼,我將如何修改我的函數,以便它可以接受字符串文字並將其反轉?
簡單:你不能。 –
所以,基本上我應該讓那些調用該函數的用戶知道字符串文字不能被傳遞? – StarTrek18
真正的問題是,你不應該用非''const'指針來引用字符串文字。 –