2013-04-12 68 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

相关问题