我剛剛瞭解了cstring庫中的cstring和一些函數。當我嘗試使用函數strcpy時,我遇到了一個令人困惑的問題。任何人都可以徹底向我解釋爲什麼第一個代碼不工作,而第二個代碼完全正常工作?strcpy和strcat的問題
首先代碼:
char *str1 = "hello";
char *str2 = "hi";
strcpy(str1, str2);
cout << str1;
二碼
char str1[] = "hello";
char *str2 = "hi";
strcpy(s1,s2);
cout << str1;
我想這個問題是我如何聲明變量STR1,但我仍然不知道爲什麼當str1和一個它不工作指針。
C++ 11不允許,因爲你正在將一個字符串字面值存儲在非const char *'中。如果你打開這些,你的編譯器可能會發出警告/錯誤。 – chris
使用'std :: string',所以你不必擔心它。還有'char * str1 =「hello」;'應該是編譯器錯誤/警告。如果你沒有得到一個你需要調整設置。 – NathanOliver
[strncpy和strcat不工作的方式,我認爲他們會C++](http://stackoverflow.com/questions/29283567/strncpy-and-strcat-not-working-the-way-i-think-they-would- c) –