在C语言中,给字符串赋值可以使用以下两种方法:
- 使用字符数组赋值:可以直接使用赋值运算符(=)将一个字符数组赋值给另一个字符数组。
#includeint main() { char str1[10]; // 定义一个大小为10的字符数组 char str2[10] = "Hello"; // 使用赋值运算符直接给字符数组赋值 printf("str2: %s\n", str2); // 将str2的值赋给str1 for (int i = 0; i < 10; i++) { str1[i] = str2[i]; } printf("str1: %s\n", str1); return 0; }
输出结果为:
str2: Hello str1: Hello
- 使用字符串常量赋值:可以直接将一个字符串常量赋值给字符数组。
#includeint main() { char str[10]; // 定义一个大小为10的字符数组 str = "Hello"; // 直接将字符串常量赋给字符数组 printf("str: %s\n", str); return 0; }
但是这种方法是错误的,会导致编译错误。因为在C语言中,字符串常量是不可修改的,而字符数组是可以修改的。上面的代码试图将一个字符串常量赋给一个字符数组,相当于将一个不可修改的值赋给一个可修改的变量,是错误的。
所以,在C语言中给字符串赋值,推荐使用字符数组赋值的方法。