题目描述:
形参 str 为要插入的字符串,src 为原字符串,n 为插入的位置
int fun(char *str, char *src, int n);
int main(int argc, char const *argv[])
{
char buf[100] = “123456”;
char *str = “abc”;
int err;
printf(“buf=%s\n”, buf); // 打印结果 123456
err = fun(str, buf, 3);
printf(“buf=%s\n”, buf); // 打印结果 12abc3456
}
解决方案:
#include <stdio.h>
#include <string.h>
int fun(char *str, char *src, int n)
{
int num_str = strlen(str), num_src = strlen(src);
while (num_src >= n) // src 第n个至最后一个字符,往后移动lenstr长度
{
num_src--;
src[num_src + num_str] = src[num_src];
}
while (num_str > 0) // str插入src
{
num_str--;
src[n - 1 + num_str] = str[num_str];
}
}