2_9_4.C
上传用户:wyn840322
上传日期:2007-01-13
资源大小:294k
文件大小:2k
源码类别:

数据结构

开发平台:

C/C++

  1. /* ======================================== */
  2. /*    程式实例: 2_9_4.c                     */
  3. /*    插入某长度字串                        */
  4. /* ======================================== */
  5. /* ---------------------------------------- */
  6. /*  计算字串长度                            */
  7. /* ---------------------------------------- */
  8. int strlen(char *str)
  9. {
  10.    int i;
  11.    for ( i = 0; str[i] != ''; i++ ); /* 用回路计算长度  */
  12.    return i;
  13. }
  14. /* ---------------------------------------- */
  15. /*  插入字串                                */
  16. /* ---------------------------------------- */
  17. char *strins(char *str1,char *str2,int pos)
  18. {
  19.    int s_len;                          /* 字串str1之长度  */
  20.    int d_len;                          /* 字串str1之长度  */
  21.    int i,j;
  22.    pos --;                             /* 计算字串的开始  */
  23.    s_len = strlen(str1);               /* 计算字串长度    */
  24.    d_len = strlen(str2);
  25.    for ( i = s_len + 1; i >= pos; i-- ) /* 空出str2的空间 */
  26.       str1[i+d_len] = str1[i];
  27.    /* 用回路填入str2至字串str1 */
  28.    for ( j = pos; str2[j-pos] != ''; j++ )
  29.       str1[j] = str2[j-pos];
  30.    return str1;
  31. }
  32. /* ---------------------------------------- */
  33. /*  主程式: 插入字串於某位置                */
  34. /* ---------------------------------------- */
  35. void main()
  36. {
  37.    char string1[200];                  /* 字串阵列1宣告 */
  38.    char string2[100];                  /* 字串阵列2宣告 */
  39.    int pos;                            /* 插入位置      */
  40.    printf("请输入原始字符串 ==> ");
  41.    gets(string1);                      /* 读取字串1     */
  42.    printf("请输入插入字串 ==> ");
  43.    gets(string2);                      /* 读取字串2     */
  44.    printf("请输入插入位置 ==> ");
  45.    scanf("%d",&pos);                   /* 读取位置      */
  46.    strins(string1,string2,pos);        /* 插入字串      */
  47.    printf("插入后的字符串是 %s n ",string1);
  48. }