第一种是从固定位置插入特定字符串(例子里面假设是从第三位开始,所以公式里面的数字是3)【公式为红色字体部分)
第二种是从字符串里面指定的字符后面插入字符串(公式在编辑栏里面)
PS:例子里面C列是需要插入的特定字符串
也许用链表比较好实现,下面是用数组实现的程序:
#include<stdio.h>
#include<string.h>
main()
{inti,j,k,m,n
chara[100],b[100],c
gets(a)
gets(b)
c=getchar()
m=strlen(a)
for(i=0i<mi++)
{if(a[i]==c)<br/>break<br/>}
if(i>=m)
{printf("出错!\n")<br/>return<br/>}
n=strlen(b)
k=m
for(j=m+nj>ij--,k--)
a[j]=a[k]
for(j=i,k=0j<n+ij++,k++)
a[j]=b[k]
printf("%s\n",a)
}
设计过程:
定义两个字符串s2,s2,字符k
输入两个字符串s1、s2和s1中任意字符k
先遍历s1找到指定字符k,记录下当前位置
从k字符开始,按s2的长度后移其余的数据
将s2拷贝到k所在的位置
输出s1。
代码如下:
#include <stdio.h>
#include <string.h>
void main()
{
char s1[100]
char s2[20]
char k
int i,pos,len
printf("input s1: ")scanf("%s", s1 )
printf("input s2: ")scanf("%s", s2 )
getchar()//滤掉回车符
printf("input k: ")scanf("%c", &k )
for( i=0s1[i]i++ )
if ( s1[i]==k )
break
}
pos=i //记录下待插入的位置
len=strlen(s2) //得到s2长度
for( i=strlen(s1)i>=posi-- ) //后移字符串
{
s1[i+len]=s1[i]
}
strncpy( &s1[pos], s2, len ) //插入数据
printf("%s\n", s1 ) //输出字符串
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)