将一个字符串插入到另一个字符串当中。算法描述如下:
图:字符串插入算法
输入格式
输入只有一行,两个字符串(stra,strb)和一个整数 i。字符串仅由英文大小写字母或数字组成。输入的字符串长度不超过127。
输出格式
无
样例输入
strng i 4
样例输出
string
解题思路
定义两个数组,第一个作为被插入的数组,第二个作为插入的数组。
先查找到要插入的下标i,将i后面的字符和结束字符移动第二个数组的长度,插入第二个数组。
代码展示
#include <stdio.h>
#include <string.h>
// 字符串插入
int main(int argc, char *argv[]) {
char str1[255], str2[127], *s1,*s2;
int i, n1, n2;
scanf("%s%s%d",str1,str2,&i);
n1 = strlen(str1);
n2 = strlen(str2);
// 移动原字符串第 i 个之后的字符 (包括 '\0')
s1 = str1+n1+n2;
while (s1>=str1+i-1+n2) {
*s1 = *(s1-n2);
s1--;
}
// 将新的字符串插入到第 1 个数组 (不包括 '\0')
s2 = str2+n2-1;
while (s1>=str1+i-1) {
*s1 = *s2;
s1--;
s2--;
}
s1 = str1;
printf("%s",s1);
return 0;
}