转换字符串格式为原来字符串里字符+该字符连续出现的个数,
例如1222335446,输出为112332514261
1233422222,输出为1121324125
以下是我自己写的程序,vs2010上测试通过
void funyasuo(char *strsrc,char *result)
{
int len=strlen(strsrc);
int count=1;
int i=1,j=0;
while(len--)
{
if(strsrc[i-1]==strsrc[i])
{
count++;
i++;
continue;
}
result[j++]=strsrc[i-1];
result[j++]=count+'0';
count=1;
i++;
}
result[j]='\0';
}
void fun()
{
cout<<"Iuput a string:"<<endl;
char strsrc[80];
char result[80];
cin.getline(strsrc,80);
result[0]='\0';
int len=strlen(strsrc);
int count=1;
int k=1;
for(k=0;k<=len-1;k++)
{
if(strsrc[k+1]==strsrc[k])
{
count++;
}
else
{
sprintf(result+strlen(result),"%c%d",strsrc[k],count);
count=1;
}
}
if(strsrc[k]==strsrc[k-1])
count++;
else
count=1;
sprintf(result+strlen(result),"%c%d",strsrc[k],count);
cout<<"result is:"<<result<<endl;
}
都是可以的,不过我比较认可我写的那个,比较简单。