c语言字符串排序所用函数 字符串排序c++实现

C语言字符串快速排序函数#include stdio.h
#includestdlib.h
#includestring.h
int comp(char *a,char *b)
{
while(*a==*b*a*b){a++;b++;}
return (int)*a-(int)*b;
}
int main(void)
{
char s[1000][20];
int i,n;
scanf("%d\n",n);
for(i=0;in;i++)
gets(s[i]);
qsort(s,n,sizeof(s[0]),comp);
printf("\n");
for(i=0;in;i++)
puts(s[i]);
system("pause");
return 0;
}
c语言中如何通过函数按字典顺序排列输入的十个字符串如果使用的是冒泡排序,那么和整数排序唯一的不同就是这个部分:
if(a[j]a[j+1])
swap(a[j],a[j+1]);
那么在字符串排序的时候,需要用到一个库函数叫strcmp(char a[],char b[]);
这个函数在cstring库中[或者c语言中在string.h库中]
这个函数的用法就是输入字符串a,b,判断a,b的字典序大小.
若a的字典序小返回负值
若a的字典序和b相同返回0
若a的字典序大于b的字典序返回正数
然后你将上面冒泡的部分改一下的话就是:
if(strcmp(a[j],a[j+1])0)
swap(a[j],a[j+1]);
这样的话就可以实现冒泡排序了.
如果你使用的是系统快排的话,你可以用string,也可以定义一个结构体
struct Node{
char ch[1000];
}s[12];
bool cmp(const Node A,const Node B){
return strcmp(A.ch,B.ch)0;
}
int main(){
...
sort(s+1,s+10+1,cmp);
...
}
这样的话也是可以实现的.
字符串数组排序(C语言)(qsort库函数)新鲜出炉c语言字符串排序所用函数:
#include
"stdio.h"
#include
"string.h"
#include
#define
N
5
/*字符串个数*/
#define
MAXLEN
30
/*字符串最大长度*/
int
CompareStrLen(
const
void
*
s1,
const
void
*
s2)
{
char
*
r1,
*
r2;
r1
=
(char
*)s1;
r2
=
(char
*)s2;
/*比较字符串长度*/
if
(strlen(r1)strlen(r2))
{
return
1;
}
else
if
(strlen(r1)
strlen(r2))
{
return
-1;
}
else
return
0;
}
int
CompareHeaderChar(const
void
*
s1,
const
void
*
s2)
{
char
*
r1,
*
r2;
r1
=
(char
*)s1;
r2
=
(char
*)s2;
//比较首字母
if
(*r1
*r2)
{
return
1;
}
else
if
(
*r1
*r2)
{
return
-1;
}
else
return
0;
}
int
main()
{
const
int
n=N;
char
f[n][MAXLEN];
int
k=0,
numOfSamelength=1;
/*输入*/
for(int
i=0;i
评论
加载更多
【c语言字符串排序所用函数 字符串排序c++实现】c语言字符串排序所用函数的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于字符串排序c++实现、c语言字符串排序所用函数的信息别忘了在本站进行查找喔 。

    推荐阅读