是否有單行的方式來初始化一個字符串?例如,在C#中,你會簡單地做:是否有一種初始化字符串的單行方式?
string str = "Example";
在Ç我願做類似下面的,但我的編譯器抱怨:
char str[] = "Example";
編輯:
char str[] = "Example";
...事實上工作。我的編譯器在抱怨這一行,但真正的問題在前一行。 Daniel Fischer的評論如下是導致這一發現的原因。謝謝你,併爲此感到抱歉。
是否有單行的方式來初始化一個字符串?例如,在C#中,你會簡單地做:是否有一種初始化字符串的單行方式?
string str = "Example";
在Ç我願做類似下面的,但我的編譯器抱怨:
char str[] = "Example";
編輯:
char str[] = "Example";
...事實上工作。我的編譯器在抱怨這一行,但真正的問題在前一行。 Daniel Fischer的評論如下是導致這一發現的原因。謝謝你,併爲此感到抱歉。
您初始化字符串的方法已經正確。您可能在該行上方的其他位置出現錯誤。
從技術上講,這裏有兩種方法可以做到這一點:
char str1[] = "string"; // static array
char* str2 = "string"; // Pointer points to a constant
靜態數組(1 ST方法)在這裏建議,因爲你初始化後,你可以修改的內容。但是,您不能修改方法的內容,因爲字符串將存儲在只讀存儲器中。
注意:對於方法,或者您可以爲新字符串分配一個新內存,而不是修改當前字符串。分配後,使用strcpy()
函數分配字符串。此外,完成後請不要忘記撥打free(str);
取消分配內存。
您可以使用這兩種方式中的任何一種...
使用字符串作爲字符集合由空(「\ 0」)字符終止。
char ch [] = {'E','x','a','m','p','l','e','\ 0'};
如果你想要像數組遞增或遞減數組變量名應該產生一個錯誤,那麼你也可以使用。
const char * ch =「Example」;
你的第二種方法是錯誤的。這裏**應該是'const'限定符。真。 – 2013-04-12 15:28:09
好吧,我修改了它.... –
仍然不好,有多個問題。請閱讀'const'。 – 2013-04-12 15:29:58
錯誤說的是什麼? – SLaks
'char str [] =「Example」;'是完全有效的C,並且是推薦的方法之一。 –
C代碼片段是合法的。請發佈編譯器錯誤。 – hmjd