C的编程。不能用string.h。字符串问题。

从键盘输入一串字符。可以是数字或者大小写字母,判断哪个字符连续重复出现的次数最多。输出这串重复字符,判断长度。
比如。 input: 8888HJKsdfee
maximum char: 8888
length: 4
这种格式。

这个。。怎么写啊。。貌似要用ptr啊。。那玩意儿怎么使啊。。 lol

ptr貌似是指字符指针。不能用string.h即不能使用标准字符串库函数。自己写就是了。
main()
{
int length=0,l=0;
char *ptr,*b,*t;
char buf[1000];
printf("input:");
scanf("%s",buf);
ptr=buf;
t=buf;
b=t;
if(*t++)
{
length=1;
l=1;
}
while(*t)
{
if(*t==*b)
{
l++;
if(l>length)
{
length=l;
ptr=b;
}
}else
{
l=1;
b=t;
}
t++;
}
ptr[length]='\0';
printf("maximun char:%s\n",ptr);
printf("length:%d",length);
}
计算机上没装C,没试验,有可能有小错误。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-10-26
#include<stdio.h>
#define MAXN 10000
char s[MAXN];
int main(){
int i,con,now,indx,len; //now 当前的最大重复次数 con 前面的最大重复次数
while(~scanf("%s",s)){
con=now=1;
for(len=0,i=0;s[i]!='\0';i++)
len++;
for(indx=0,i=1;i<len;i++)
if(s[i]==(s[i-1]))
now++;
else{
if(con<now)
con=now,indx=i-1;
now=1;
}
if(con<now){
con=now,indx=i-1;
}
printf("maximum char: ");
for(i=0;i<con;i++)
printf("%c",s[indx]);
printf("\n");
printf("length: %d\n",con);
}
return 0;
}
相似回答