c语言输入一个字符串,如何在指定位置插入一个字符?

c语言输入一个字符串,如何在指定位置插入一个字符?,第1张

也许用链表比较好实现,下面是用数组实现的程序:

#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 ) //输出字符串

}

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#defineN100

voidInsert(char*s)

intmain()

{

charstr[N]

printf("Inputastring:")

gets(str)

Insert(str)

printf("Insertresults:%s\n",str)

return0

}

voidInsert(char*s)

{

charstr[N]

char*t=str

strcpy(t,s)

for(*t!='\0's++,t++)

{

*s=*t

s++

*s=''

}

*s='\0'/*在字符串s的末尾添加字符串结束标志*/

}

扩展资料

C语言通过定义一个char类型的二维数组实现,通过二维数组的行索引可得到数组中的每个字符串,列的大小限定了每个字符串所能包含的最大字符个数,所以采用这种定义方式时,列的大小必须不能小于数组所有字符串的最大长度。

C语言编程定义一个字符串的数组:

str={

“IloveC.”,

“IloveC++.”,

“IloveJAVA.”,

“IlovePython.”,

“IloveLabVIEW.”

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11414425.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存