C语言中 字符串怎么排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中 字符串怎么排序相关的知识,希望对你有一定的参考价值。
/*
函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;
请编制函数SortCharD( ), 其函数的功能是: 以行为单位对字符按从大到小的顺序进行排序,
排序后的结果仍按行重新存入字符串数组xx中。 例: 原文: dAe,BfC.
CCbbAA
结果: fedCBA.,
bbCCAA*/
#include <stdio.h>
#include <string.h>
int main()
char xx[80]="dAe,Bfc";
/*介于不清楚文件操作 所以用一句英文 代替题目中的英文文章*/
int len,i,j,temp;
len=strlen(xx);
//printf("%d\n",len);
for (i=0;i<len;i++)
for (j=i+1;i<len;j++)
if (xx[i]<xx[j])
temp=xx[i];
xx[i]=xx[j];
xx[j]=temp;
for (i=0;i<len;i++)
printf("%c",xx[i]);printf("\n");
return 0;
给看一下 错哪里了
直接借助冒泡排序,选择排序即可进行字符串的排序,但是需注意的是,字符串的比较需要借助strcmp函数完成,而字符串的复制需要借助strcpy函数完成。
示例代码如下:
#include "stdio.h"#include "string.h"
void sort(char array[][20],int n);
main(void)
char str[10][20];
int i,j,k,n;
printf("input n (n<=10):");
scanf("%d",&n);
printf("input %d string:",n);
for(i=0;i<n;i++)
gets(str[i]); //输入N个字符串
sort(str,n); //对输入的字符串排序
printf("sort string:\\n");
for(i=0;i<n;i++)
puts(str[i]);
return 0;
void sort(char array[][20],int n) //定义排序函数
char temp[20];
int i,j,k;
for(i=1;i<n-1;i++)
k=i;
for(j=i+1;j<n;j++)
if(strcmp(array[k],array[j])>0)
k=j;
if(k!=i)
strcpy(temp,array[i]); //字符串交换顺序
strcpy(array[i],array[k]);
strcpy(array[k],temp);
参考技术A #include <stdio.h>
#include <string.h>
int main()
char xx[80]="dAe,Bfc";
int len,i,j;
len=strlen(xx);
for (i=0;i<len;i++)
for (j=0;j<len;j++)//这里不能用i来关条件的
if (xx[i]>xx[j])
xx[i]^=xx[j];
xx[j]^=xx[i];
xx[i]^=xx[j];
for (i=0;i<len;i++)
printf("%c",xx[i]);
printf("\n");
return 0;
以上是关于C语言中 字符串怎么排序的主要内容,如果未能解决你的问题,请参考以下文章