今天在寫一個程序是 突然遇到這個一個奇怪的問題,字符型指針指向string類型的字符串 如下:
string str="abcdcccd"; char* t1=str;
竟然報錯!我學了很久 我一直以為這個能通過!
找了一會 解決方法如下:
- 使用tring對象的c_str()函數。
還是不行,報錯如下:
但可以通過在類型char前面通過加const關鍵字解決:
成功解決,但是這樣t1指針不能對指向的值進行更改,這不是我們所期望的。
所以 可以通過類型轉換將str的const屬性去掉,如下所示:
這樣就可以通過指針t1對字符串中的值進行修改啦!
*注:還有一種方法就是老老實實的定義char類型的數組而不用string。
char str[]="abcdcccd"; char* t1=str;