字符数组的使用

  以下数组实现输入5个字符串,对这5个字符串排序,例如输入:

China

Japan

India

Italy

Korea

 

#include<iostream>
using namespace std;
void main()

{  

//这里不能定义字符数组的第二维长度为5,因为元素之间需要间隔,否则编译系统无法区分元素之间的起始位置

//str[0]指向的内容会变成”ChinaJapanIndiaItalyKorea“

//所以字符数组定义的长度应该略大于实际存放的数据长度,不能刚刚相等

 //char str[5][5], temp[5], *pt=temp;
    char str[5][6], temp[5], *pt=temp;
    int i,j;
    cout<<"please input 5 strings:"<<endl;
    for(i=0; i < 5; i++)
        cin>>str[i];

    /*for(i=0; i < 5; i++) //当运行是错误,可以尝试输出相应的信息观察
        cout<<str[i]<<" "; */
    cout<<endl;

    cout<<"sorted strings:"<<endl;
    cout<<endl;

    for(i=0; i < 4; i++)
        //for(j=0; j < 5 - i; j++)

//注意以下的判定条件应该是”j < 5 - i“不是"j < 6 - i"否则当j == 5是str[i+1]则是str[6]下标越界
        for(j=0; j < 5 - i; j++) 
            if(strcmp(str[j], str[j + 1]) > 0)
            {    strcpy(pt, str[j]);
                strcpy(str[j], str[j + 1]);
                strcpy(str[j + 1], pt);
            }

    for(i=0; i < 5; i++)
        cout<<str[i]<<endl;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值