有两个含有数字和字母的字符串,要求把它们合并成一个新的字符串。
在新字符串中,不许有重复的符号,并且各字符按照从小到大的顺序排列,即:数字 < 大写字母 < 小写字母。
操作要求如下:
输入:两个字符串,以空格分隔
输出:合并后的字符串
原题网址:http://zhidao.baidu.com/question/352327593.html
//====================================
看到网上的答案,觉得那些人编写的代码,真是过于罗嗦了。
有人面对这样一个简单的问题,竟然写了一百多行 !
也有人动用了少见的函数,用C编译不出来。
//------------------------------------
针对上述题目,做而论道给出程序如下:
//------------------------------------
#include <stdio.h>
void main()
{
char B[100], C[127] = {0}; unsigned char i;
printf("Input STR: \n"); gets(B); //输入字符串
printf("\n\n"); //换行
for (i = 0; B[i] != '\0'; i++) C[B[i]] = 1; //逐个查看字符并记录
for (i = 33; i < 127; i++) if (C[i]) printf("%c", i); //显示排序后的字符
printf("\n\n"); //换行
}
//------------------------------------
程序运行过程中,显示如下:
//------------------------------------
Input STR:
a;lsd; SDAS;;L9009
09;ADLSadls
//------------------------------------
仅仅用了一个函数gets(),以及两个十分简单 for 循环,就满足了题目要求。
在两个循环中,循环体也仅仅有一条语句。
呵呵,整个程序的语句,实质上,也不过三句而已。
//====================================