c语言中向字符串赋值有两种方法:使用字符串文字,直接分配字符串文本给字符数组,以空字符结尾。使用字符串常量,定义不可修改的字符串,并分配其地址给字符指针。
C语言中向字符串赋值方法
在C语言中,为字符串赋值有两种主要方法:
使用字符串文字
char str[] = "Hello World";
这种方法直接将字符串文字(引号内的文本)分配给一个字符数组。字符串文字以一个空字符('0')结尾,表示字符串的结束。
使用字符串常量
#define MESSAGE "Hello World"
char *str = MESSAGE;
这种方法使用预处理器宏定义字符串常量,然后将字符串常量的地址分配给一个字符指针。字符串常量无法修改,因此这种方法常用于定义不可变的字符串。
如何选择赋值方法
使用何种赋值方法取决于具体情况:
- 如果字符串是已知的并且不会改变,则使用字符串文字更方便。
- 如果字符串需要动态生成或修改,则使用字符串常量更合适。
示例
以下示例演示了两种赋值方法的用法:
char str1[] = "Original String";
char *str2 = "New String";
printf("%sn", str1); // 输出:“Original String”
printf("%sn", str2); // 输出:“New String”
strcpy(str1, str2); // 将 str2 的内容复制到 str1 中
printf("%sn", str1); // 输出:“New String”
在这个示例中,str1 使用字符串文字赋值,而 str2 使用字符串常量赋值。然后,strcpy 函数将 str2 的内容复制到 str1 中,从而修改了 str1 的值。