2013-04-12 67 views
-1

是否有單行的方式來初始化一個字符串?例如,在C#中,你會簡單地做:是否有一種初始化字符串的單行方式?

string str = "Example";

Ç我願做類似下面的,但我的編譯器抱怨:

char str[] = "Example";

編輯:

char str[] = "Example";

...事實上工作。我的編譯器在抱怨這一行,但真正的問題在前一行。 Daniel Fischer的評論如下是導致這一發現的原因。謝謝你,併爲此感到抱歉。

+1

錯誤說的是什麼? – SLaks

+6

'char str [] =「Example」;'是完全有效的C,並且是推薦的方法之一。 –

+2

C代碼片段是合法的。請發佈編譯器錯誤。 – hmjd

回答

1

您初始化字符串的方法已經正確。您可能在該行上方的其他位置出現錯誤。

從技術上講,這裏有兩種方法可以做到這一點:

char str1[] = "string"; // static array 
char* str2 = "string"; // Pointer points to a constant 

靜態數組(1 ST方法)在這裏建議,因爲你初始化後,你可以修改的內容。但是,您不能修改方法的內容,因爲字符串將存儲在只讀存儲器中。

注意:對於方法,或者您可以爲新字符串分配一個新內存,而不是修改當前字符串。分配後,使用strcpy()函數分配字符串。此外,完成後請不要忘記撥打free(str);取消分配內存。

0

您可以使用這兩種方式中的任何一種...

  1. 使用字符串作爲字符集合由空(「\ 0」)字符終止。

    char ch [] = {'E','x','a','m','p','l','e','\ 0'};

  2. 如果你想要像數組遞增或遞減數組變量名應該產生一個錯誤,那麼你也可以使用。

    const char * ch =「Example」;

+0

你的第二種方法是錯誤的。這裏**應該是'const'限定符。真。 – 2013-04-12 15:28:09

+0

好吧,我修改了它.... –

+0

仍然不好,有多個問題。請閱讀'const'。 – 2013-04-12 15:29:58

相關問題