练习10.多行字符按字典序排序

版权声明:此文章为作者筱睿_原创文章,转载请附上博客链接 https://blog.csdn.net/qq_43756486/article/details/86745413

多行字符按字典序排序

多行字符用二维数组存储,排序用选择排序,字符串按字典序排序(选择排序和字典序,前面的博客有介绍)

函数

这里用到的几种函数,在此做一点介绍
1.std :: strcmp
C ++ 字符串库 空终止的字节串
在标题中定义
int strcmp ( const char * lhs,const char * rhs );
按字典顺序比较两个以空值终止的字节字符串。

结果的符号是第一对字符(均被解释为unsigned char)的值之间的差异的符号,这些字符在被比较的字符串中不同。

如果lhs或rhs不是指向以null结尾的字符串的指针,则行为是未定义的。

参数
lhs,rhs - 指向要以比较的空终止字节字符串的指针
返回值
如果在字典顺序中lhs出现,则为负值rhs。

如果lhs和rhs比较相等,则返回0.

如果按字典顺序lhs出现,则为正值rhs。

2.std :: strcpy
C ++ 字符串库 空终止的字节串
在标题中定义

char strcpy(char str1, const char* str2); 将str2拷贝给str1
3.
gets()相当于输入字符串并换行
puts()输出字符串并换行

代码 (c++实现)

#include<iostream>
#include<string.h>
using namespace std;
int main(){
	int i,j;
	char a[5][10],t[11];
	cout<<"请输入6排字符串,每个字符串不超过5字节"<<endl;		
	for(i=0;i<6;i++)
	gets(a[i]);		//输入6排数 
	for(i=0;i<5;i++)		//选择排序  for(i)表示排4趟 
	{
		for (j=i+1;j<5;j++)		//for(j) 从i+1向后比较 
		if(strcmp(a[i],a[j])>0)		//如果不是字典序,就交换 
		{
			strcpy(t,a[i]);			//这里字符串交换需用strcpy函数 
			strcpy(a[i],a[j]);
			strcpy(a[j],t); 
		}
	}
	cout<<"排序后的五排字符串为:"<<endl; 
	for(i=0;i<5;i++)
	puts(a[i]); 
	system("pause");
	return 0;
} 

猜你喜欢

转载自blog.csdn.net/qq_43756486/article/details/86745413