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