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语言中 字符串怎么排序的主要内容,如果未能解决你的问题,请参考以下文章

C语言问题:将一字符串按ASCII大小排序

C语言问题:输入一行字符串,然后按照ASCII码大小进行升序排序。

c语言中怎么随机抽选100个数字并排序?

C语言如何在键盘中输入一个数字字符串并进行排序

Java中怎么对数组中的字符串进行排序

c语言 向字符串中插入字符并排序