1、C 语言中的字符串C 语言中,字符串实际上是字符数组,因此你不能像处理其他类型的变量(如整数或浮点数)一样,直接使用 = 运算符给字符串赋值。因为字符串是数组,而在 C 语言中,数组不能直接赋值。
#include
int main() {
char str1[] = "Hello";
char str2[] = "World";
str1 = str2; // 错误!C 语言中不能直接赋值数组
return 0;
}2、使用 strcpy 修改字符串(对于数组)
如有一个字符数组,并且想要给它赋一个新的字符串值,应该使用
#include
int main() {
// 分配足够的空间来存储新字符串
char str1[20];
// 将新字符串复制到str1 中
strcpy(str1, "Hello, world!");
printf("%s",str1);
return 0;
}3、使用指针处理动态字符串
如想动态地赋值字符串(使用指针),可以使用 malloc 或 calloc 为字符串分配内存。就可以在释放之前为指针赋予新的字符串值。
#include
#include
#include
int main() {
char *str = malloc(20 * sizeof(char)); // 为字符串分配内存
if (str == NULL) {
// 处理内存分配失败的情况
return 1;
}
strcpy(str, "Hello, world!"); // 为 str 赋一个新字符串
printf("%s\n", str); // 打印字符串
free(str); // 使用完后释放内存
return 0;
}
4、避免使用 strdup(如果不支持)
strdup 是一种便捷的函数,用于分配内存并将字符串复制到该内存中。它不是 C 标准库的一部分,但在一些平台(如 POSIX 系统)上是可以使用的。
#include
int main() {
// 分配内存并复制字符串
char *str = strdup("Hello, world!");
printf("%s",str);
// 使用字符串
free(str); // 使用完后释放内存
return 0;
}