在字符串指定位置插入字符串 C语言不使用库函数
时间: 2024-10-29 12:10:30 浏览: 35
在C语言中,如果你想要在字符串指定位置插入另一个字符串,通常需要借助一些字符数组操作来实现,因为C标准库并没有直接提供这个功能的函数。以下是一个简单的示例,演示如何通过循环来完成这个任务:
```c
#include <stdio.h>
#include <string.h>
void insert_string(char *str, char *insert, int position) {
// 获取原始字符串的长度
size_t original_len = strlen(str);
// 计算新字符串的长度(包括原始字符串、插入内容和结束符)
size_t new_len = original_len + strlen(insert) + 1; // +1 为了添加新的结束符
// 扩展原始字符串,以便有足够的空间插入
char extended_str[new_len];
strncpy(extended_str, str, position); // 将原字符串复制到新数组前position位置
// 插入字符串
strcat(extended_str, insert); // 在已复制的位置插入新的字符串
// 添加新的结束符
extended_str[original_len + strlen(insert)] = '\0'; // 在末尾添加'\0'
// 更新原始指针指向新字符串
str = extended_str;
}
int main() {
char str[] = "Hello, World!";
char insert[] = "C";
int pos = 7;
printf("Before insertion: %s\n", str);
insert_string(str, insert, pos);
printf("After insertion at position %d: %s\n", pos, str);
return 0;
}
```
在这个例子中,`insert_string` 函数接收一个原始字符串 `str`,插入的字符串 `insert` 和插入的位置 `position`,然后手动创建一个新的字符串并将它们合并。
阅读全文