C语言缩写展开

来源:百度知道 编辑:UC知道 时间:2024/05/24 10:06:05
在保存字符串时,对出现在连续位置的若干个字符,如这些字符在ASCII表中也是连续出现,则可以将这些字符使用缩写形式进行保存,以节省保存空间。例如用A-Z表示ABCD...XYZ,1-5表示12345,c-f表示cdef。

输入:

包含缩写形式的字符串

输出:

将缩写形式进行还原后的字符串

说明:

只处理大小写字母和数字,即对于形如A-9,a-C这样的缩写不进行处理

例子1
输入
a-z↵
输出
abcdefghijklmnopqrstuvwxyz↵
例子2
输入
ABDG-K035-9abd-h↵
输出
ABDGHIJK0356789abdefgh↵
例子3
输入
asjfdhlkdsa-7
输出
asjfdhlkdsa-7812389=-ert=9-1,..;[[]1`=-=43↵

这个很容易,不会又是老师给的作业题吧,慢慢学吧!

#include <stdio.h>
#include <string.h>
int main()
{
char a[100];
int i=0,l,b=0;
scanf("%s",a);
l=strlen(a);
for(;i<l;i++)
{
if(a[i]=='-')
{
for(b;b<i;b++)
printf("%c",a[b]);
if((a[i+1]>a[i-1])&&((a[i+1]<='z')&&(a[i-1]>='a')||(a[i+1]<='9')&&(a[i-1]>='1')||(a[i+1]<='Z')&&(a[i-1]>='A')))
{
for(char j=a[i-1]+1;j<=a[i+1];j++)
printf("%c",j);
}
else
printf("%c%c%c",a[i-1],a[i],a[i+1]);
b=i+2;
}
}
return 0;
}