69,369
社区成员
发帖
与我相关
我的任务
分享
/*
* 给定一个字符串,实现一个函数,按下述方式输出字符串:
* 如果此字符的下一个字符和此字符不一样,原样输出此字符,
* 否则先输出此字符,再输出此字符连续出现的次数(次数不大于9)。
* 例如,字符串ABBCCCDEDFFF,输出的结果为AB2C3DEDF3。
*
* 不用考虑溢出问题,不能使用任何I/O函数
*/
void change_str(char *s, int len)
{
char tmp[1024]='\0';
int i = 0, j = 0;
for (i = 0; i < len; i++)
{
}
}
int main(int argc, char **argv)
{
char str[1024] = "ABBCCCDEDFFF";
change_str(str, 1024);
printf("changed string is %s\n", str);
//expect result: AB2C3DEDF3
return 0;
}
#include<iostream>
using namespace std;
int main()
{
string s;
int a[30];
while(cin>>s)
{
for(int i=0; i<30; i++)
a[i]=1;
int len=s.length();
int k=0;
for(int i=1; i<=len; i++)
{
if(s[i]==s[i-1])
{
a[k]++;
}
else
{
if(a[k]==1)
cout<<s[i-1];
if(a[k]!=1&&a[k]<=9)
{
cout<<s[i-1];
cout<<a[k];
}
if(a[k]!=1&&a[k]>9)
{
for(int pp=0;pp<a[k]/9;pp++)
cout<<s[i-1]<<9;
cout<<s[i-1]<<a[k]%9;
}
k++;
}
}
cout<<endl;
}
}
#include <stdio.h>
#include <string.h>
void change_str(char *s, int len)
{
char *s1 = s;
char *p=s;
char tmp[1024]={0};
char *p_tmp=tmp;
int cnt ;
/*printf("s is %s\n", s);*/
*p_tmp = *s;
while(*++p)
{
if(*p == *s1++)
{
cnt++;
*p_tmp = cnt+'0';
continue;
}
if(cnt == 1)
*p_tmp++ = *p;
else
{
p_tmp++;
*p_tmp++ = *p;
cnt = 1;
}
}
*++p_tmp = '\0';
printf("tmp[] is %s\n", tmp);
strcpy(s,tmp);
}
int main(/*int argc, char **argv*/)
{
char str[1024] = "ABBCCCDEDFFF";
change_str(str, 1024);
printf("changed string is %s\n", str);
//expected result: AB2C3DEDF3
system("pause");
return 0;
}
void change_str(char *s, int len)
{
char *p, *q, *t;
int cnt=0;
for(q=s,p=s+1,t=q;*p;p++)
{
if(*p!=*q)
{
*t++=*q;
if(cnt>=2)
{
*t++='0'+cnt;
}
q=p;
cnt=0;
}
else
{
if(cnt == 0)
cnt=2;
else
cnt++;
}
}
//最后一个字符
*t++=*q;
if(cnt>=2)
*t++='0'+cnt;
*t='\0';
}
#include<iostream>
using namespace std;
void change_str(char *s, int len)
{
char tmp[1024] = {0};
int i = 0, j = 0;
tmp[j++] = s[i];
for (i = 0; i < len; i++)
{
if(i + 1 < len && s[i] != s[i+1])
{
tmp[j++] = tmp[j] + '1';
tmp[j++] = s[i+1];
}
else
{
++tmp[j];
}
}
strcpy(s, tmp);
}
int main(int argc, char **argv)
{
char str[1024] = "ABBCCCDEDFFF";
change_str(str, 1024);
printf("changed string is %s\n", str);
//expect result: AB2C3DEDF3
return 0;
}