菜鸟求助!按字典顺序排列问题

输入若干英文单词,将每个单词的首字母转换成大写字母,其他字母为小写,并按字典顺序排列

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>

int cmp(const void * a, const void * b)
{
    return strcmp(*(char **)a, *(char **)b);
}

int main(int argc, char* argv[])
{
    int n = 0;
    int i;
    printf("how many words?\n");
    scanf("%d", &n);
    char ** s = new char *[n];
    for (i = 0; i < n; i++)
    {
        s[i] = new char[100];
        scanf("%s", s[i]);
        char * t = s[i];
        while (*t != '\0')
        {
            if (t == s[i] && (*t >= 'a' && *t <= 'z')) *t = *t - 'a' + 'A';
            if (t > s[i] && (*t >= 'A' && *t <= 'Z')) *t = *t - 'A' + 'a';
            t++;
        }
    }
    qsort(s, n, sizeof(char *), cmp);
    for (i = 0; i < n; i++)
    {
        printf("%s\n", s[i]);
    }
    return 0;
}
 how many words?
5
wORd
HellO
yEllow
she
APPLE
Apple
Hello
She
Word
Yellow
Press any key to continue

这是两个需求,第一个简单:字母大写小写转换;第二个排序:排序算法很多,网上查一下就有答案。在字母大写小写转换时统计一下个数,排序时用。

图片说明

(1)单词字母大小转换比较容易实现。
(2)字符串比较可以用strcmp函数。
(3)选一种常见的排序算法(如冒泡),用strcmp函数对字符串进行比较,然后排序即可实现。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^