6-53 字符串指定位置插入C语言
时间: 2024-11-09 16:31:42 浏览: 32
在C语言中,如果你想在字符串的指定位置插入字符,可以先计算出新字符串的长度,然后动态分配内存创建新的字符串,接着将原字符串的一部分复制到新字符串的前面,最后将插入的字符添加到适当的位置并拷贝剩余部分。
下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
void insert_char(char* str, int pos, char ch) {
// 计算新字符串的长度
int len = strlen(str);
if (pos > len) {
printf("插入位置超出字符串长度\n");
return;
}
// 动态分配内存
size_t new_len = len + 1; // 为了包含新插入的字符
char* new_str = realloc(str, new_len); // 如果str需要增长,这里会分配额外的空间
// 插入字符
if (new_str != NULL) {
// 移动原字符串的部分内容
memmove(new_str + pos + 1, new_str + pos, len - pos);
// 将插入的字符放在新位置
new_str[pos] = ch;
// 打印新字符串
printf("插入后的字符串: %s\n", new_str);
} else {
printf("内存分配失败\n");
}
}
int main() {
char str[] = "Hello, World!";
insert_char(str, 7, '-'); // 在"World!"前插入一个'-'
free(str); // 注意释放原始字符串占用的内存
return 0;
}
```
在这个例子中,`insert_char`函数会在给定位置插入字符,并打印出新的字符串。如果插入位置超出了字符串长度或者内存分配失败,会有相应的错误提示。
阅读全文