#include<stdio.h>
#include<string.h>
int main()
{
char ch[10000];
int i,j,e,flog;
__int64 t,a[10000];
while(gets(ch))
{
memset(a,0,sizeof(a));//把a[10000]都初始化为0;a是用来装找出来的数
for(e=0;e<strlen(ch);e++)//这里字符串最前面可能有5,所以先把前面的5去掉
if(ch[e]!='5')
break;
flog=0;t=1;j=0;//j是代表找出的第几个数的下角码
for(i=strlen(ch)-1;i>=e;i--)//这里要从最后开始往前找
{
if(ch[i]!='5')//是5的话说明这个数就己经结束
{
a[j]+=(ch[i]-'0')*t;//t=1表示这个数的个位数,等10表示十位数,以此类推
t*=10; flog=1;//flog是控制下一个数的开关
}
else if(flog)//如果为真说明上面找的数己经结束,到找一下个数了,
{
j++;t=1;flog=0;//t和flog初始化;j++是下一个数了
}
}
for(i=0;i<=j;i++)//把找出来的数从小到大排序
for(e=i+1;e<=j;e++)
if(a[i]>a[e])
{
t=a[i];a[i]=a[e];a[e]=t;
}
t=0;
for(i=0;i<=j;i++)//输出,注意是两个数之间有空隔
{
if(t==0)
{
printf("%I64d",a[i]);
t=1;
}
else
printf(" %I64d",a[i]);
}
printf("\n");
}
return 0;
}
#include<string.h>
int main()
{
char ch[10000];
int i,j,e,flog;
__int64 t,a[10000];
while(gets(ch))
{
memset(a,0,sizeof(a));//把a[10000]都初始化为0;a是用来装找出来的数
for(e=0;e<strlen(ch);e++)//这里字符串最前面可能有5,所以先把前面的5去掉
if(ch[e]!='5')
break;
flog=0;t=1;j=0;//j是代表找出的第几个数的下角码
for(i=strlen(ch)-1;i>=e;i--)//这里要从最后开始往前找
{
if(ch[i]!='5')//是5的话说明这个数就己经结束
{
a[j]+=(ch[i]-'0')*t;//t=1表示这个数的个位数,等10表示十位数,以此类推
t*=10; flog=1;//flog是控制下一个数的开关
}
else if(flog)//如果为真说明上面找的数己经结束,到找一下个数了,
{
j++;t=1;flog=0;//t和flog初始化;j++是下一个数了
}
}
for(i=0;i<=j;i++)//把找出来的数从小到大排序
for(e=i+1;e<=j;e++)
if(a[i]>a[e])
{
t=a[i];a[i]=a[e];a[e]=t;
}
t=0;
for(i=0;i<=j;i++)//输出,注意是两个数之间有空隔
{
if(t==0)
{
printf("%I64d",a[i]);
t=1;
}
else
printf(" %I64d",a[i]);
}
printf("\n");
}
return 0;
}
本文介绍了一个使用C语言处理字符串的应用案例,该程序能够去除字符串前导的特定字符,并从中提取非特定字符组成的数字,然后将这些数字进行排序并输出。通过分析此程序,读者可以了解如何利用C语言中的字符串操作、内存处理及排序算法。
344

被折叠的 条评论
为什么被折叠?



