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

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

#include

#include"stringh"

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;

}

//这段程序错误太多,而且代码风格太乱;

//不过估计您是个初学者,就帮你的程序按你思路修改了

//运行结果如下:

模仿拼音输入法

请输入拼音wo

wo

0挝 1莴 2涡 3窝 4蜗 5倭 6踒 7喔 8我 9肟 10沃 11卧 12偓 13握 14幄

15渥 16龌 17涴 18硪 19斡 请输入对应的序号选字:2

//修改后程序如下,希望对你有用!

#include<stdioh>

#include<stringh>

int main() //是int还是void,根据编译器,我用的是CodeBlocks需要用int

{

char wo[]= {"wo"};

char wo_ch[]= {"挝莴涡窝蜗倭踒喔我肟沃卧偓握幄渥龌涴硪斡"};

printf("%d:%s\n", strlen(wo_ch), wo_ch);

//char str_input[3];

unsigned int i=0,str_ch_len=strlen(wo_ch);

printf("模仿拼音输入法\n");

printf("请输入拼音wo\n");

//scanf("%s",str_input);

char str_input[3];

gets(str_input);//输入拼音

//if(str_input==wo)//修改如下(字符串是不能直接比较的!)

if (0==strcmp(str_input,wo))

{

for(i=0; i<str_ch_len; i+=2)

//printf("%d%c "i,wo_ch[i]); //修改如下(双引号之后应该有,号)

printf("%d%c%c ",i/2,wo_ch[i],wo_ch[i+1]);

last:

printf("请输入对应的序号选字:");

//scanf("%d" &i); //修改如下

unsigned int n;

scanf("%u", &n);

if (2n>str_ch_len)

{

printf("你要选的字符不存在\n");

goto last;

}

else

{

printf("%c%c",wo_ch[2n],wo_ch[2n+1]);

}

}

else

{

printf("对不起,没有找到该拼音的字库\n");

}

return 0;//如果主函数是void,删除此行!

}

#include<stdioh>

#include<stringh>

void main()

{

void sort(char (p)[20]);

char a[5][20];//五行20列

int i;

printf("请输入5个字符串:\n");

for(i=0;i<5;i++)//这里输入五个字符串

gets(a[i]);

sort(a);//调用函数进行排列

}

void sort(char (p)[20])

{

char a[20];

int i,j;

for(i=0;i<4;i++)//这里把每一行看做一个元素五个要进行4次比较

for(j=0;j<20;j++)//这里是上下相邻的两行之间对应元素进行比较

{

if(p[i][j]>p[i+1][j])//遇到上行大于交换上下两行

{

strcpy(a,p[i]);

strcpy(p[i],p[i+1]);

strcpy(p[i+1],a);

}

break;

}

printf("五个串按从小到大排列如下:\n");

for(i=0;i<5;i++)

puts(p[i]);

printf("\n");

}

#include

void fun(char s)

{ int i, n, k; char c;

n=0;

for(i=0; s[i]!='\0'; i++) n++;

/found/

if(n%2==0) k=n-___1___ ;

else k=n-2;

/found/

c=___2___ ;

for(i=k-2; i>=1; i=i-2) s[i+2]=s[i];

/found/

s[1]=___3___ ;

}

main()

{ char s[80]="abcdefgh";

printf("\nThe original string is : %s\n",s);

fun(s);

printf("\nThe result is : %s\n",s);

}

自己填空吧

以上就是关于C语言程序:题目:从键盘输入一个字符串,按照字符顺序从小到大进行排序,并要求删除重复的字符。答案如下全部的内容,包括:C语言程序:题目:从键盘输入一个字符串,按照字符顺序从小到大进行排序,并要求删除重复的字符。答案如下、C语言拼音打字程序问题、一道c语言程序题: 输入5个字符串,按字典顺序将其重新排列输出。用字符串指针实现。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9874408.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存