C语言---冒泡排序排序多个字符串

strcmp函数
原型:extern int strcmp(const char *s1, const char * s2);

用法:#include

功能:比较字符串s1和s2。

一般形式:strcmp(字符串1,字符串2)


说明:
当s1
当s1 = s2时,返回值 = 0

当s1>s2时,返回值>0

即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:

"A"<"B" "a">"A" "computer">"compare"


特别注意:strcmp(const char *s1, const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。


排序多个字符串一般由字符串的首字符决定

void Bubble(char *str[], int sz)
{
	int i = 0;
	int j = 0;
	int flag = 1;
	for (i = 0; i < sz - 1; i++)
	{
		int flag = 0;
		for (j = 0; j < sz - 1 - i; j++)
		{
			if (strcmp(*(str+j), *(str +1+ j))>0)    //*str的ASKII码值大于*(str+j),交换两个字符串,也就是首字母小的在前面
			{
				char *tmp = *(str+j);
				*(str+j) = *(str + 1+j);
				*(str + 1+j) = tmp;
				flag = 1;
			}
		}
		if (!flag)
		{
			break;
		}
	}
}
int main()
{
	char *str[] = { "eeee", "ffff", "ssss", "aaaa" };
	int sz = sizeof(str) / sizeof(str[0]);
	Bubble(str, sz);
	int i = 0;
	for (i = 0; i < sz; i++)
	{ 
		printf("%s ", str[i]);
	}
	system("pause");
	return 0;
}



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