C语言 aabbcc、abc、fabc、aabc

输入一个字符串,匹配字符串中连续出现的字符串、并且连续个数相等

如输入 aabbcc、abc、fabc、aabc、aabbc

分别输出yes还是no

#include<stdio.h>
#include<string.h>
void main()
{
/*
思路:输入一个字符串数组a,定义一个数组b[3]={1,0,0}(其用意是默认第一个是不需要匹配的)

*/
char a[]={'f','a','a','a','b','d','c'};

int b[3]={1,0,0};
int i = 0;
int f = 0;
int g = 0;
int h = 1;
printf("a===%d ",sizeof(a));
for( i = 1 ; i< sizeof(a);i++)
{
printf("i====%d ",i);
//如果a[i-1] == a[i],默认从a[0] == a[1]开始,相等就加一,相当于a[0]='a' == a[1]='a'
if(a[i-1] == a[i]){
b[g] = ++h;
printf("b[%d]=%d ",g,b[g]);
}
//此处只需要判断不相等
if((a[i-1] != a[i]) && (a[i-1]-a[i] == -1)){//&& a[i]-a[i+1] = 1
if( a[i-1]-a[i] == -1){
h = 1;
g = g+1;
b[g] = h;
}else{
if(g==0){
b[0] = 1;
b[1] = 0;
b[2] = 0;
}
if(g == 1){
b[0] = b[1];
b[1] = 0;
b[2] = 0;
}
if(g == 2){
b[0] = b[2];
b[1] = 0;
b[2] = 0;
}

h = 1;
g = 0;
}
}
printf("%d ",b[0]);
printf("%d ",b[1]);
printf("%d ",b[2]);
printf("----------------------------- ");
if(b[0] >= b[1] && b[1]== b[2] && b[2]>=1){
printf("yes ");
break;
}

}

}

原文地址:https://www.cnblogs.com/M-D-Luffy/p/4039305.html