C 是否有单行方式初始化字符串?
是否有单行方式初始化字符串?例如,在C#中,您只需执行以下操作:C 是否有单行方式初始化字符串?,c,string,char,C,String,Char,是否有单行方式初始化字符串?例如,在C#中,您只需执行以下操作: string str=“示例” 在C中,我想做如下操作,但我的编译器抱怨: char str[]=“示例” 编辑: char str[]=“示例” …事实上确实有效。我的编译器一直在抱怨这一行,但真正的问题是前一行的内容。丹尼尔·菲舍尔(Daniel Fischer)下面的评论是导致这一发现的原因。谢谢您,很抱歉给您带来困惑。您可以使用这两种方法中的任何一种 使用字符串作为以null('\0')字符终止的字符集合 char ch[
string str=“示例”代码>
在C中,我想做如下操作,但我的编译器抱怨:
char str[]=“示例”代码>
编辑:
char str[]=“示例”代码>
…事实上确实有效。我的编译器一直在抱怨这一行,但真正的问题是前一行的内容。丹尼尔·菲舍尔(Daniel Fischer)下面的评论是导致这一发现的原因。谢谢您,很抱歉给您带来困惑。您可以使用这两种方法中的任何一种
使用字符串作为以null('\0')字符终止的字符集合
char ch[]={'E','x','a','m','p','l','E','\0'}
如果需要,如数组递增或递减,则数组变量名应产生错误,然后还可以使用
const char*ch=“示例”
初始化字符串的方法已正确。你可能在那条线以上的其他地方有错误
从技术上讲,有两种方法可以做到这一点:
char str1[] = "string"; // static array
char* str2 = "string"; // Pointer points to a constant
这里建议使用静态数组(第一种方法),因为您可以在初始化内容后修改它。但是,您不能修改第二个方法的内容,因为字符串将存储在只读内存中
注意:对于第二种方法,您也可以为新字符串分配新内存,而不是修改当前字符串。分配后,使用strcpy()
函数分配字符串。另外,不要忘记调用free(str)代码>完成后取消分配内存。错误是什么?char str[]=“示例”
是完全有效的C语言,也是推荐的方法之一。C代码段是合法的。请发布编译器错误。C2500(E)非法标记“char”。C2225(E)未声明的名称“str”。C2500(E)非法令牌“]”。上一行忘记了分号?您的第二种方法是错误的。应该有const
限定符。真的。还是不好,有很多问题。请仔细阅读有关常数的内容。