您的位置:首页 > 其它

按字母顺序排序输出

2016-04-16 10:54 274 查看
#include<stdio.h>

#include<iostream>

using namespace std;

void strcpy1(char*p1, char*p2)

{

char temp;

temp =* p1;

*p1 = *p2;

*p2 = temp;

}

int main()

{

char st[20], cs[5][20];

int i, j, p;

cout << "input country name:" << endl;

for (i = 0; i < 5; i++)

gets_s(cs[i]);

cout << "输入完成"<<endl;

for (i = 0; i < 5; i++)

{

p = i;

strcpy_s(st, cs[i]);

for (j = i + 1; j < 5; j++)

{

if (strcmp(cs[j], st) < 0)

{

p = j;

strcpy_s(st, cs[j]);

}

}

if (p != i)

{

//strcpy_s(st, cs[i]); 这个地方是重点,c++自带的strcpy函数只能实现复制功能,却不能实现指针的交换,要想让指针交换,必须

strcpy1(cs[i], cs[p]); // 自己定义函数,紧紧实现复制在此处并不能完成要求,因为没有指针的交互,在下一次循环的时候,这个时候已经

// strcmp(cs[p], st); 输出的字符串在原来的数组中还存在,还会继续比较,所以,要把输出的字符串放到最前面,i+1后就不会再比较了。无法得到正确的结 // 果。

//puts(cs[i]);

}

puts(cs[i]);

}

cout << "dd" << endl;

for (i = 0; i < 5; i++)

cout << cs[i] << endl;

cout << endl;

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: