C语言的作业,求帮忙!! 10

一、题目从键盘输入字符串,字符串中含大写字母,小写字母,及其它字符。编写程序将大写字母、小写字母、其它字符按顺序分离并分别保存在3个字符数组中,原字符数组保持不变。然后对... 一、 题目
从键盘输入字符串,字符串中含大写字母,小写字母,及其它字符。编写程序将大写字母、小写字母、其它字符按顺序分离并分别保存在3个字符数组中,原字符数组保持不变。然后对3个字符数组中的字符按ascii码升序排序。要求如下:
(1) 用3个函数分别实现大写字母、小写字母及其它字符的分离,用1个函数实现字符的排序;
(2) 函数形式参数为指向字符的指针变量;
(3) 主函数中调用函数实现各种字符的分离及排序并显示原字符及3类分离排序后的字符。
展开
 我来答
My_Persistence
2017-12-27 · TA获得超过3466个赞
知道大有可为答主
回答量:1201
采纳率:81%
帮助的人:421万
展开全部
#include<stdio.h>
#include<string.h>
#define N 255
void separateUpper(char *src,char *dest)
{
int i,j;
i=j=0;
while(src[i] != '\0'){
if(src[i]>='A' && src[i]<='Z'){
dest[j++]=src[i];
}
i++;
}
dest[j]='\0';
}
void separateLower(char *src,char *dest)
{
int i,j;
i=j=0;
while(src[i] != '\0'){
if(src[i]>='a' && src[i]<='z'){
dest[j++]=src[i];
}
i++;
}
dest[j]='\0';
}
void separateOther(char *src,char *dest)
{
int i,j;
i=j=0;
while(src[i] != '\0'){
if(!((src[i]>='a' && src[i]<='z') || (src[i]>='A' && src[i]<='Z'))){
dest[j++]=src[i];
}
i++;
}
dest[j]='\0';
}
//冒泡排序(升序)函数
void sort(char *str)
{
int i,j,n;
char tmp;
n=strlen(str);
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
{
if(str[j] > str[j+1])
{
tmp=str[j];
str[j]=str[j+1];
str[j+1]=tmp;
}
}
}
int main()
{
char str[N],upper[N],lower[N],other[N];
printf("输入字符串: ");
scanf("%s",str);
separateUpper(str,upper);
separateLower(str,lower);
separateOther(str,other);
sort(upper);
sort(lower);
sort(other);
printf("输出原字符串: %s\n",str);
printf("输出大写字符: %s\n",upper);
printf("输出小写字符: %s\n",lower);
printf("输出其他字符: %s\n",other);
return 0;
}

//示例运行结果
F:\c_work>a.exe
输入字符串: Absc!@DEFG#$%^NJGhjkkd123.org.com!
输出原字符串: Absc!@DEFG#$%^NJGhjkkd123.org.com!
输出大写字符: ADEFGGJN
输出小写字符: bccdghjkkmoors
输出其他字符: !!#$%..123@^
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式