标题:字符串的删除与排序
只看楼主
邹峰研
Rank: 2
等 级:论坛游民
帖 子:46
专家分:18
注 册:2020-3-4
结帖率:88.89%
已结贴  问题点数:25 回复次数:5 
字符串的删除与排序
【问题描述】

输入若干个字符串(每个字符串的长度不超过30个字符,字符串总数不超过30),和一个英文字符ch。 要求: - 删除每个字符串中的字符ch(区分大小写),得到新的字符串 - 将新的字符串按照字典逆序排序后输出

【输入形式】

第一行输入英文字符ch

每一行输入一个字符串

最后一行单独输入特殊字符@做为结束标志

【输出形式】

删除ch的新字符串按字典逆序输出

每行输出一个字符串

【样例输入】

e
shangejiao
fudean
teongji
shangcai
@
【样例输出】

tongji
shangjiao
shangcai
fudan

——————————这题我写了个for循环的代码,编译无问题,但是无法运行,而且很冗长。各位前辈有没有一些简便的方法或者代码赐教啊!——————————
搜索更多相关主题的帖子: 字符串 输出 排序 输入 删除 
2020-04-24 21:30
r316999443
Rank: 7Rank: 7Rank: 7
来 自:星城长沙
等 级:黑侠
威 望:1
帖 子:597
专家分:501
注 册:2006-11-7
得分:13 
部分核心思路
while(*str++ != '\0')
{
  if(*str != 'e')
  {
     *str1++ = *str;
  }  
}
*str1 = '\0';
未调试,随写,勿喷!

[此贴子已经被作者于2020-4-24 22:19编辑过]

2020-04-24 22:07
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:12 
对于在 s[30][31] 的 n 个字符串中删除字符ch
    char *p;
    for (i=0; i<n; ++i)
    {
        p = s[i];
        for (j=0,k=0; p[j]; ++j)
        {
            if (p[j] != ch)
                p[k++] = p[j];
        }
        p[k] = '\0';
    }

将新的字符串按照字典逆序排序
int cmp(const void *a , const void *b)
{
    return strcmp((char*)b, (char*)a);
}
......
qsort(s, n, sizeof(s[0]), cmp);

输出
for (i=0; i<n; ++i)
    printf("%s\n", s[i]);

2020-04-25 06:49
邹峰研
Rank: 2
等 级:论坛游民
帖 子:46
专家分:18
注 册:2020-3-4
得分:0 
回复 3楼 吹水佬
这个大小写怎么区分啊

今天再晚也是早,明天再早也是晚
2020-04-26 13:22
邹峰研
Rank: 2
等 级:论坛游民
帖 子:46
专家分:18
注 册:2020-3-4
得分:0 
回复 4楼 邹峰研
是我理解错了,谢谢你的回答!

今天再晚也是早,明天再早也是晚
2020-04-26 13:40
qw2202e
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2021-3-14
得分:0 
LZ可以发一下源文件吗???
2021-03-15 00:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501236-1-1.html




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

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