C++中字符串的比较与排序

C++中字符串的比较与排序

字符串的比较是指将两个字符串的对应字符进行比较。如果相同则对比下一对对应字符,直到不同或两个字符串同时结束。

字符串排序是指将字符串数组按指定顺序进行排序。

include 

int strCmp(const void* a,const void* b)
{
	return (*(std::string const*)a).compare (*(std::string const*)b);
}

int main(int argc,const char* argv[])
{

	std::string str1 = "Hello World!";
	std::string str2 = "Hello World!";

	/*
	字符串str1中的第一个字符与字符串str2中的第一个字符进行比较
	如果相同,则对比各自的第二个字符,直到第二个字符串结束
	如果一直相同,则返回0;如果有不同,若str1中的字符ACCII码大于str2中的ASCII码,则返回正数,否则返回负数。
	*/
	std::cout << str1.compare(str2) << std::endl;


	std::string str3[] = {"xian","nanjing","shanghai","kunming"};

	//求字符数组str3的第一个元素所占的字节数。该值时作为下面qsort函数的参数使用
	size_t size = sizeof(str3[0]);

	//以下求字符数组的元素个数。该值也是作为下面qsort函数的参数使用
	size_t nmemb = sizeof(str3)/size;

	/*
	调用库函数qsort对数组str3进行排序。
	第一个参数是要排序的数组名
	第二个参数是要排序的数组的元素个数
	第三个参数是要排序的数组的每个元素所占的字节数
	第四个参数是排序条件,它是一个函数的函数名
	*/
	qsort(str3,nmemb,size,strCmp);

	for(int i = 0;i < nmemb;i++)
		std::cout << str3[i] << std::endl;


	return 0;
}

你可能感兴趣的:(C++语言基础)