當前位置:編程學習大全網 - 編程軟體 - c語言輸入壹個字符串,如何在指定位置插入壹個字符?

c語言輸入壹個字符串,如何在指定位置插入壹個字符?

也許用鏈表比較好實現,下面是用數組實現的程序:

#include<stdio.h>

#include<string.h>

main()

{ int i,j,k,m,n;

char a[100],b[100],c;

gets(a);

gets(b);

c=getchar();

m=strlen(a);

for(i=0;i<m;i++)

{if(a[i]==c)<br/> break;<br/> }

if(i>=m)

{printf("出錯!\n");<br/> return;<br/> }

n=strlen(b);

k=m;

for(j=m+n;j>i;j--,k--)

a[j]=a[k];

for(j=i,k=0;j<n+i;j++,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=0;s1[i];i++?)

if?(?s1[i]==k?)

break;

}

pos=i;?//記錄下待插入的位置

len=strlen(s2);?//得到s2長度

for(?i=strlen(s1);i>=pos;i--?)?//後移字符串

{

s1[i+len]=s1[i];

}

strncpy(?&s1[pos],?s2,?len?);?//插入數據

printf("%s\n",?s1?);?//輸出字符串

}

  • 上一篇:有哪些口碑很好的積木品牌可以分享?
  • 下一篇:如何編寫和編程蜂蜜裝置模塊
  • copyright 2024編程學習大全網