| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1256 人关注过本帖
标题:各位大佬求指教
只看楼主 加入收藏
xseer1998
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-12-20
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
各位大佬求指教
萌新这里有道题不太会,求大佬们指教,谢谢了
从键盘输入字符串,字符串中含大写字母,小写字母,及其它字符。编写程序将大写字母、小写字母、其它字符按顺序分离并分别保存在3个字符数组中,原字符数组保持不变。然后对3个字符数组中的字符按ascii码升序排序。要求如下:
(1) 用3个函数分别实现大写字母、小写字母及其它字符的分离,用1个函数实现字符的排序;
(2) 函数形式参数为指向字符的指针变量;
(3) 主函数中调用函数实现各种字符的分离及排序并显示原字符及3类分离排序后的字符。
搜索更多相关主题的帖子: 字符 字母 分离 排序 函数 
2017-12-20 02:10
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
哪里不会  还是想拿代码走人

DO IT YOURSELF !
2017-12-20 09:00
xseer1998
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-12-20
收藏
得分:0 
不知道怎么分成三个子函数再输出
2017-12-20 10:13
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
收藏
得分:10 
我帮你写好了三个分离函数,其他的你自己添加完成吧。
程序代码:
#include <stdio.h>
void fldx(char *dx,const char *ysz){
    int   i=0,j=0;
        while(*(ysz+i)!='\0'){
        if(*(ysz+i)>='A'&&*(ysz+i)<='Z')
        {
           *(dx+j)=*(ysz+i);
           j++;
        }
        i++;
    }
}

void flxx(char *xiaox,const char *ysz){
    int   i=0,j=0;
        while(*(ysz+i)!='\0'){
        if(*(ysz+i)>='a'&&*(ysz+i)<='z')
        {
           *(xiaox+j)=*(ysz+i);
           j++;
        }
        i++;
    }
}

void flqt(char *qit,const char *ysz){
    int   i=0,j=0;
        while(*(ysz+i)!='\0'){
        if(*(ysz+i)<'A'||*(ysz+i)>'Z'&&*(ysz+i)<'a'||*(ysz+i)>'z')
        {
           *(qit+j)=*(ysz+i);
           j++;
        }
        i++;
    }
}
int main(void)
{
    char yuansz[128]={0};
    char daxie[128]={0};
    char xiaoxie[128]={0};
    char qita[128]={0};
    printf("请输入1个字符串:\n");
    gets(yuansz);
    fldx(daxie,yuansz);
    flxx(xiaoxie,yuansz);
    flqt(qita,yuansz);
    printf("大写:%s\n",daxie);
    printf("小写:%s\n",xiaoxie);
    printf("其他:%s\n",qita);
    return 0;
}

2017-12-20 14:31
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
收藏
得分:0 
算了都给你吧。
程序代码:
#include <stdio.h>
void fldx(char *dx,const char *ysz){
    int   i=0,j=0;
        while(*(ysz+i)!='\0'){
        if(*(ysz+i)>='A'&&*(ysz+i)<='Z')
        {
           *(dx+j)=*(ysz+i);
           j++;
        }
        i++;
    }
}

void flxx(char *xiaox,const char *ysz){
    int   i=0,j=0;
        while(*(ysz+i)!='\0'){
        if(*(ysz+i)>='a'&&*(ysz+i)<='z')
        {
           *(xiaox+j)=*(ysz+i);
           j++;
        }
        i++;
    }
}

void flqt(char *qit,const char *ysz){
    int   i=0,j=0;
        while(*(ysz+i)!='\0'){
        if(*(ysz+i)<'A'||*(ysz+i)>'Z'&&*(ysz+i)<'a'||*(ysz+i)>'z')
        {
           *(qit+j)=*(ysz+i);
           j++;
        }
        i++;
    }
}

void paixu(char *px){
    int   i=0,n,m;
    char  tmp=0;
    while(*(px+i)!='\0'){
        i++;
    }
    for(m=0;m<i;m++){
        for(n=0;n<i-1;n++){
          if(*(px+n)>*(px+n+1)){
             tmp=*(px+n);
             *(px+n)=*(px+n+1);
             *(px+n+1)=tmp;
    }   

    }
    }
   

   

}
int main(void)
{
    char yuansz[128]={0};
    char daxie[128]={0};
    char xiaoxie[128]={0};
    char qita[128]={0};
    printf("请输入1个字符串:\n");
    gets(yuansz);
    fldx(daxie,yuansz);
    flxx(xiaoxie,yuansz);
    flqt(qita,yuansz);
    paixu(daxie);
    paixu(xiaoxie);
    paixu(qita);
    printf("大写:%s\n",daxie);
    printf("小写:%s\n",xiaoxie);
    printf("其他:%s\n",qita);
    printf("愿串:%s\n",yuansz);
    return 0;
  }

2017-12-20 16:05
快速回复:各位大佬求指教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018861 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved