-1

是否有单行方式来初始化字符串?例如,在 C# 中,您只需执行以下操作:

string str = "Example";

C中,我想做类似以下的事情,但我的编译器抱怨:

char str[] = "Example";

编辑:

char str[] = "Example";

...确实有效。我的编译器抱怨这一行,但真正的问题是上一行。Daniel Fischer 下面的评论是导致这一发现的原因。谢谢你,很抱歉造成混乱。

4

2 回答 2

1

您初始化字符串的方法已经正确。您可能在该行上方的其他地方有错误。

从技术上讲,有两种方法可以做到这一点:

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

此处推荐使用静态数组(一种方法),因为您可以在初始化后修改内容。但是,您不能修改第二种方法的内容,因为字符串将存储在只读内存中。

注意:对于第二种方法,或者,您可以为新字符串分配新内存,而不是修改当前字符串。分配后,使用strcpy()函数分配字符串。另外,完成后不要忘记调用free(str);以取消分配内存。

于 2013-04-12T15:30:45.300 回答
0

您可以使用这两种方式中的任何一种...

  1. 使用字符串作为字符集合以 null ( '\0' ) 字符结尾。

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

  2. 如果你想要这样,像数组递增或递减数组变量名应该产生一个错误,那么你也可以使用。

    const char *ch = "示例";

于 2013-04-12T15:27:52.357 回答