(平台)单词排序

先看代码


//创建二维数组存放字符串
//用strcmp()函数函数去给字符串排序
#include<stdio.h>
#include<string.h>

int main()
{
    char s[9][100];
    int i = 0, j = 0;
    char tmp[10];
    //将数据输入到二维数组中
    for (i = 0; i < 9; i++)
    {
        scanf("%s", s[i]);//数组名就是地址,再用&s就是地址的地址
    }
    //打印排序前的字符串
    printf("排序前的字符串:\n");
        for (i = 0; i < 9; i++)
            printf("%s\n", s[i]);
        i = 0;
        while (i < 9)
        {
            for (j = i + 1; j < 9; j++)
            {
                if (strcmp(s[i], s[j]) > 0)
                {
                    strcpy(tmp, s[i]);
                    strcpy(s[i], s[j]);
                    strcpy(s[j], tmp);
                }
            }
            i++;
        }

    //打印排序后的字符串
    printf("排序后的字符串:\n");
    for (i = 0; i < 9; i++)
        printf("%s\n", s[i]);

    return 0;
}

从这个系列开始,我们已经一起完成了不少题了,现在的感觉应该就是拿到一道基础编程题,自己是能够在快速的想到解决问题的方法,难点在于对编程语言语法点的掌握,以及对易错细节的处理。往往我们做感觉自己很快能做好的题,在细节上出错后,调试找BUG的环节会变得异常急躁。但为了成为一名出色的killer,一定要在这种时候保持冷静和理性。(一点碎碎念)


疑点:

  1. 将数据存储到字符串数组中

可以使用scanf()函数,格式限定为“%s”(有同学可能会误写成“%c”)


for (i = 0; i < 9; i++)
    {
        scanf("%s", s[i]);//数组名就是地址,!!!不用写“&”
    }

还可以使用gets()函数,gets()函数原型

char * gets ( char * str ),所以在读取数组的时候应该这样写


for (i = 0; i < 9; i++)
    {
        gets(s[i]);
    }
  1. 在字符串数组中,交换数据使用strcpy

通常,我们习惯于使用整形的数组类型进行交换,就是大家熟知的“有两个瓶子一个装油,一个装醋......”所以就出现了下面这种写法


{
    char temp;
    temp = s[i];
    s[i] = s[i+1];
    s[i+1] = temp;
}

当时自己检查的时候看到这个东西(内心:“F**K”,这是什么东西?)

但其实后面学到了C++了解到了string类之后就会惊喜的发现这样也是可行的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值