回覆列表
  • 1 # 使用者6127567513602

    也許用連結串列比較好實現,下面是用陣列實現的程式:

    #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 ); //輸出字串

    }

  • 中秋節和大豐收的關聯?
  • 我對著白雲畫上一顆小心心是什麼歌的歌詞?