02051021.c

来自「用C语言实现的判断子串的程序」· C语言 代码 · 共 53 行

C
53
字号
#include<stdio.h>
#include<stdlib.h>
#define SIZE1 100
#define SIZE2 50
int find(char [],char []);
main()
{
      char string1[SIZE1],string2[SIZE2];
      printf("请输入不超过%d个字符的字符串.\n",SIZE1);
      scanf("%s",string1);
      printf("请输入不超过%d个字符的字符串.\n",SIZE2);
      scanf("%s",string2);
      if(find(string1,string2)==-1)
      printf("%s不是%s的子串.\n",string2,string1);
      else 
      printf("%s在%s的位置是%d.\n",string2,string1,find(string1,string2));
      system("pause");
      return 0;
      }
int find(char string1[],char string2[])
{
    int i,j,flag1,flag2,len1,len2;
    i=0;
    while(string1[i]){
        i++;
    }
    len1=i;
    i=0;
    while(string2[i]){
        i++;
    }
    len2=i;

    i=0;
    flag2=1;
    while((i<len1-len2)&&flag2){
        flag1=1;
        j=0;
        while((j<len2)&&flag1){
            if(string2[j]!=string1[i+j]){
                flag1=0;
            }
            j++;
        }
        if(flag1==1){
            return i+1;
            flag2=0;
        }
        i++;
    }
    return -1;
}  

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?