这个题有一个挺坑的误区,不是统计字符串中出现的所有字符的个数,而是统计相邻的个数
刚开始就写错了
正解:
#include <stdio.h>
#include <string.h>
int main(){
int n,i,num;
char str[10001];
scanf("%d",&n);
while(n--){
num=1;
scanf("%s",str);
for(i=0;i<strlen(str);i++){
if(str[i]==str[i+1]){ //如果一个字符跟它后面的字符相同则num++;
num++;
}
else{
if(num<=1) {
printf("%c",str[i]);
num=1;
}//记住num要重置为1。
else{
printf("%d%c",num,str[i]);
num=1;
}
}
}printf("
");
}return 0;
}
错解:
#include<stdio.h>
int main()
{
int str[10000+5];
int t;
scanf("%d",&t);
while(t--)
{
scanf("%s",str);
solve();
}
void solve(char str[])
{
int num = 1;
int len = strlen(str);
for(int i=0; i<len; i++)
{
if(str[i] == str[i+1] ) num++;
else{
if( num==1) printf("%c",str[i]);
else printf("%d%c",num,str[i]);
num==1;
}
} printf("
");
}
return 0;
}