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

数据结构

开发平台:

C/C++

  1. /* ======================================== */
  2. /*    程式实例: 2_10_1.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. int strindex(char *str1,char *str2)
  18. {
  19.    int end,i,j;
  20.    end = strlen(str1) - strlen(str2);  /* 计算结束位置   */
  21.    if ( end > 0 )                      /* 子字符串小於字符串 */
  22.    {
  23.       for ( i = 0; i <= end; i++ )
  24.          /* 用回路比较各字元 */
  25.          for ( j = i; str1[j] == str2[j-i]; j++ )
  26.             if ( str2[j-i+1] == '' ) /* 子字符串字结束   */
  27.                return i + 1;           /* 找到了子字符串   */
  28.    }
  29.    return -1;
  30. }
  31. /* ---------------------------------------- */
  32. /*  主程式: 在字符串中找寻子字符串出现位置.     */
  33. /* ---------------------------------------- */
  34. void main()
  35. {
  36.    char string[100];                   /* 字符串阵列宣告   */
  37.    char substring[100];                /* 子字符串阵列宣告 */
  38.    int result;                         /* 找寻结果       */
  39.    printf("请输入字符串 ==> ");
  40.    gets(string);                       /* 读取字符串       */
  41.    printf("请输入要搜索的子字符串 ==> ");
  42.    gets(substring);                    /* 读取子字符串     */
  43.    result = strindex(string,substring);  /* 搜寻子字符串   */
  44.    if ( result > 0 )
  45.       printf("子字符串 %s 位置在 %dn",substring,result);
  46.    else
  47.       printf("没有找到子字符串 %sn",substring);
  48. }