#includestdio.h
创新互联是一家以网络技术公司,为中小企业提供网站维护、网站制作、做网站、网站备案、服务器租用、域名与空间、软件开发、成都小程序开发等企业互联网相关业务,是一家有着丰富的互联网运营推广经验的科技公司,有着多年的网站建站经验,致力于帮助中小企业在互联网让打出自已的品牌和口碑,让企业在互联网上打开一个面向全国乃至全球的业务窗口:建站欢迎联系:13518219792
#define MAX_NUM 32int main()
{ char *p,str[60];
int i,j=0;
static int num[26];
p=(char*)malloc(MAX_NUM*sizeof(char));
gets(str);
for(i=0;str[i];i++)
{ if(str[i]==' ') p[j++]=str[i];
else {
if(num[str[i]-97]==0||num[str[i]-97]==2||num[str[i]-97]==5)
{ p[j++]=str[i]; num[str[i]-97]++;}
else num[str[i]-97]++;
} }
for(i=0;ij;i++)
putchar(p[i]);
getch();
return 0;
}注:输入的为小写字母,而且句子长度不超过60个字符,保存字数不超过32个。。。。。在win_tc中通过……
话说B数组不应该是整形呀,不然不能保存字母了。以下是我的代码。。。
#include iostream
#include string.h
#include stdio.h
using namespace std;
void yasuo(char a[],char b[])
{
int count=1,p=0;
for(int i=0; istrlen(a); i++)
if(a[i]==a[i+1])
count++;
else if(count2)
{
b[p++]=(char)(count+'0');
b[p++]=a[i];
count=1;
}
else if(count==2)
{
b[p++]=a[i];
b[p++]=a[i];
count=1;
}
else
b[p++]=a[i];
}
void printB(char b[])
{
coutbendl;
}
void backB(char b[])
{
for(int i=0; istrlen(b); i++)
if(b[i]='9'b[i]='3')
{
for(int j=0; j(int)(b[i]-'0'); j++)
coutb[i+1];
i++;
}
else
coutb[i];
coutendl;
}
int main()
{
char a[1000]= {0},b[1000]= {0};
gets(a);
yasuo(a,b);
printB(b);
backB(b);
}
#include stdio.h
void stringZip(const char
*pInputStr, long lInputLen, char *pOutputStr)
{ int n=1;
char c,*p1=pInputStr,*p2=pOutputStr;
while(*p1)
{
c=*(p1++);
while(*p1==c){n++;p1++;}
if(n1)
{
if(n999){*(p2++)=48+n/1000; n/=10;}
if(n99){*(p2++)=48+n/100; n/=10;}
if(n9){*(p2++)=48+n/10; n/=10;}
*(p2++)=48+n;
}
*(p2++)=c;
n=1;
}
*p2='\0';
}
void main()
{ char s1[200],s2[200];
gets(s1);
stringZip(s1,strlen(s1),s2);
puts(s2);
}
/*
原串: 111225555
压缩后: 312245
原串: 333AAAbbbb
压缩后: 333A4b
原串: ASXDCdddddd
压缩后: 1A1S1X1D1C6d
Press any key to continue
*/
#include stdio.h
#include string.h
char *CompressStr(char s[]) {
char t[255];
int i = 0,j,k = 0;
while(s[i]) {
j = i + 1;
while(s[i] == s[j]) ++j;
t[k++] = j - i + '0';
t[k++] = s[i];
i = j;
}
t[k] = '\0';
strcpy(s,t);
return s;
}
int main(void) {
char i,s[][20] = {"111225555","333AAAbbbb","ASXDCdddddd"};
for(i = 0; i 3; ++i) {
printf("原串: %s\n",s[i]);
printf("压缩后: %s\n",CompressStr(s[i]));
}
return 0;
}