在 C 中改变一个字符串的大小,有可能吗?

标签 c string char strlen

我已经阅读了很多关于这个的内容,但我无法理解,例如,我想更改字符串中的一个字符。

假设我有以下字符串:

char a [] = "stackoverflow" 

然后我想在末尾再添加 5 个字母,或者再删除 2 个字母,等等......得到这样的字符串:

char b [] = "stackoverflowstack"
char b [] = "stackoverfl"

我该怎么做,请有人向我解释一下,在此先感谢...

最佳答案

您可以通过 C 库调用使用动态内存分配,例如 malloc .这需要您有可用的堆内存。我不会进一步讨论这个问题,因为有很多引用资料可用。

如果这不是一个选项,您将需要使用 strncpy并创建足够大的数组来存储部分结果。

例如,在您选择的示例中:

const char* stackOverflow[] = "stackoverflow";
char a[20];  // Enough room for the largest possible string.

strncpy(a, stackOverflow, sizeof(a));
strncpy(a, "stackoverflowstack", sizeof(a)); // Copy null char as well
strncpy(a, "stackoverfl", sizeof(a)); // Copy null char as well

关于在 C 中改变一个字符串的大小,有可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21151410/

相关文章:

c - 如何在 C 中将这些 ASCII 值转换为二进制

c - 矩阵标准库

php - 缩短字符串 PHP

java - java中没有分配的字符串连接

C 程序问题 代码无法运行

c - Keil中结构体链表错误

java - 通过蓝牙从 Android 发送时,字符串中缺少前三个字符

C++ - 如何将 char append 到 char*?

c - 在 C 中,如何检查一个字符串是否包含 2 个数字、1 个字母和 4 个数字?

c++ - 如何制作一个包含一个字符 '-1' 的字符串?