• 14、字符匹配,输出出现的位置


     1 //1、字符串s1,s2
     2 //2、s2[i]取出
     3 //3、s1自0递增,连续和s2比较
     4 //4、匹配到相同,比较停止,返回2,取出s2[i+1],循环开始
     5 //5、没有匹配到相同,比较停止,返回2,取出s2[i+1],循环开始
     6 
     7 #include<stdio.h>
     8 #define Maxlength 1000
     9 
    10 int any(char s1[], char s2[]);
    11 
    12 int main()
    13 {
    14     int c;
    15     int i = 0;
    16     int result = 0;
    17 
    18     char s1[Maxlength];
    19     char s2[Maxlength];
    20 
    21     for(i=0; i<Maxlength; ++i)
    22         s1[i] = '';
    23     for(i=0; i<Maxlength; ++i)
    24         s2[i] = '';
    25 
    26     printf("请输入字符串1:
    ");
    27     for(i=0; (c=getchar())!='
    '; ++i)
    28         s1[i] = c;
    29 
    30     printf("请输入字符串2:
    ");
    31     for(i=0; (c=getchar())!='
    '; ++i)
    32         s2[i] = c;
    33 
    34     result = any(s1, s2);
    35     if(result == 0)
    36         printf("
    未查询到匹配部分!");
    37     else if(result == 1)
    38         printf("
    匹配完成!");
    39     else if(result == 2)
    40         printf("
    字符串1未输入有效内容!");
    41     else if(result == 3)
    42         printf("
    字符串2未输入有效内容!");
    43 
    44     return 0;
    45 }
    46 
    47 int any(char s1[], char s2[])
    48 {
    49     int i = 0;      //s2
    50     int p = 0;      //s1
    51     int state = 0;  //单个匹配状态
    52     int m = 0;      //匹配结果,0:无相同部分 1:匹配到内容 2:S1未输入 3:s2未输入
    53 
    54     if(s1[i] == '' || s1[i] == '
    ')
    55         m = 2;
    56     if(s2[i] == '' || s2[i] == '
    ')
    57         m = 3;
    58 
    59     for(i=0; s2[i]!=''; ++i,state=0,p=0)
    60     {
    61         while(state==0 && s1[p]!='')
    62         {
    63             if(s1[p] == s2[i])
    64             {
    65                 printf("%d", p+1);
    66                 state = 1;
    67                 m = 1;
    68                 ++p;
    69             }
    70             else if(s1[p+1] == '')
    71             {
    72                 putchar('|');
    73                 ++p;
    74             }
    75             else
    76                 ++p;
    77         }
    78     }
    79     return m;
    80 }

     1 //1、字符串s1,s2
     2 //2、s2[i]取出
     3 //3、s1自0递增,连续和s2比较
     4 //4、匹配到相同,比较停止,返回2,取出s2[i+1],循环开始
     5 //5、没有匹配到相同,比较停止,返回2,取出s2[i+1],循环开始
     6 
     7 #include<stdio.h>
     8 #define Maxlength 1000
     9 
    10 int any(char s1[], char s2[]);
    11 
    12 int main()
    13 {
    14     int c;
    15     int i = 0;
    16     int result = 0;
    17 
    18     char s1[Maxlength];
    19     char s2[Maxlength];
    20 
    21     for(i=0; i<Maxlength; ++i)
    22         s1[i] = '';
    23     for(i=0; i<Maxlength; ++i)
    24         s2[i] = '';
    25 
    26     printf("请输入字符串1:
    ");
    27     for(i=0; (c=getchar())!='
    '; ++i)
    28         s1[i] = c;
    29 
    30     printf("请输入字符串2:
    ");
    31     for(i=0; (c=getchar())!='
    '; ++i)
    32         s2[i] = c;
    33 
    34     result = any(s1, s2);
    35     if(result == 0)
    36         printf("
    未查询到匹配部分!");
    37     else if(result == 1)
    38         printf("
    匹配完成!");
    39     else if(result == 2)
    40         printf("
    字符串1未输入有效内容!");
    41     else if(result == 3)
    42         printf("
    字符串2未输入有效内容!");
    43 
    44     return 0;
    45 }
    46 
    47 int any(char s1[], char s2[])
    48 {
    49     int i = 0;      //s2
    50     int p = 0;      //s1
    51     int state = 0;  //单个匹配状态
    52     int m = 0;      //匹配结果,0:无相同部分 1:匹配到内容 2:S1未输入 3:s2未输入
    53 
    54     if(s1[i] == '' || s1[i] == '
    ')
    55         m = 2;
    56     if(s2[i] == '' || s2[i] == '
    ')
    57         m = 3;
    58 
    59     for(i=0; s2[i]!=''; ++i,state=0,p=0)
    60     {
    61         while(state==0 && s1[p]!='')
    62         {
    63             if(s1[p] == s2[i])
    64             {
    65                 putchar(s2[i]);
    66                 putchar('	');
    67                 printf("%d
    ", p+1);
    68                 state = 1;
    69                 m = 1;
    70                 ++p;
    71             }
    72             else if(s1[p+1] == '')
    73             {
    74                 putchar(s2[i]);
    75                 putchar('	');
    76                 putchar('|');
    77                 putchar('
    ');
    78                 ++p;
    79             }
    80             else
    81                 ++p;
    82         }
    83     }
    84     return m;
    85 }

  • 相关阅读:
    使用httpVueLoader加载vue单页面不用脚手架的方法
    uniapp微信小程序登录,获取手机号,支付,分享,消息订阅功能
    uniapp UI库 uview
    vue change阻止默认事件已解决
    elementui 添加和修改使用同一个表单清除表单数据和验证!!
    uniapp 分类实现多条件筛选
    uniapp 小程序订阅消息爬坑记
    时间选择器datetimerpicker封装使用(非脚手架)
    elementui 表单(添加和修改使用同一个)重置 && 开关(关键点)
    uniapp 小程序订阅消息
  • 原文地址:https://www.cnblogs.com/Gozz/p/7912052.html
Copyright © 2020-2023  润新知