用递归算法写一个函数,求字符串最长连续字符的长度,比如aaaabbcc的长度为4,aabb的长度为2,ab的长度为1。这个是原题目的要求,本人现在水平不高,所采用了非递归的形式。递归的会在有想法后给出。下面贴上代码,共大家参考:
#include<stdio.h> #include<assert.h> int get_max_char_count(char *s,char *ret) { assert(s!=NULL); char *temp_char,*final_char,*p; int temp_count,final_count=0; p=s; while(*p!='\0') { temp_count=0; for(temp_char=p,p=p+1,temp_count=1;*p!='\0';p++) { if(*p==*temp_char) temp_count++; else break; } if(temp_count>final_count) { final_char=temp_char; final_count=temp_count; } } *ret=*final_char; return final_count; } void main() { char s[]="aabbbcccc"; int count; char c; count=get_max_char_count(s,&c); printf("%c is appeared %d times\n",c,count); }