C语言程序:题目:从键盘输入一个字符串,按照字符顺序从小到大进行排序,并要求删除重复的字符。答案如下

答案一#include<stdio.h>#include"string.h"intmain(void){charstr1[500]={0},str2[256]={0};i... 答案一
#include<stdio.h>
#include"string.h"
int main(void)
{
char str1[500]={0},str2[256]={0};
int i;
gets(str1);
for(i=0;str1[i];i++)
{
str2[str1[i]]=1;
}
for(i=0;i!=256;i++)
if(str2[i]==1)
printf("%c",i);
putchar('\n');
return 0;
}
一点也看不懂,求高手解释每个步骤的作用啊
展开
 我来答
百度网友79054ee
推荐于2017-11-25 · TA获得超过190个赞
知道小有建树答主
回答量:196
采纳率:0%
帮助的人:121万
展开全部
#include<stdio.h>
#include"string.h"
int main(void)
{
char str1[500]={0},str2[256]={0};//定义二个数组,并赋初值为0
int i;
gets(str1);//读取一个字符串
for(i=0;str1[i];i++)
{
str2[str1[i]]=1;//str1中每个字符的assic码作为str2的下标值,并把对应位置填充为1,同一个字符的assci值相同,所以这样就去掉了重复字符
}
for(i=0;i!=256;i++)
if(str2[i]==1)//判断数组中被str1填充的位置,填充的是非0值,没填充的是0值
printf("%c",i);//输出str2的下标值,对应str1中的字符值
putchar('\n');
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式