如何使用strcmp对二维字符数组的行(字符串)进行排序?

克里斯蒂安·G

所以我需要对二维字符数组的行进行排序。如果用户输入:

  1. x
  2. abdf
  3. A B C D
  4. lmno
  5. 第一时间

它应该返回

  1. A B C D
  2. abdf
  3. lmno
  4. 第一时间
  5. x

    虽然我的排序方法有问题。是否可以不使用指针进行排序还是应该使用指针?它甚至将所有用户输入存储到 temp 中,这很奇怪,因为它的长度为 5。

       #include <stdio.h>
       #include <string.h>
       void sortStr(char str[5][4]);
    
       int main()
    {
        char str[5][4];
        int i,r,c;
    
    
    
        //user inputs 5 strings in 2d array.
    for(i=0;i<5;i++)
    {
       printf("\nEnter a string %d: ",i+1);
       scanf(" %[^\n]",&str[i]);
    }
    
    sortStr(str);
    //display array
    for(r = 0; r<5; r++)
    {
        for(c=0; c<4; c++)
        {
            printf("%c",str[r][c]);
        }
        printf("\n");
    }
    
     return 0;
      }
    
    void sortStr(char str[5][4])
    {
        int i, j;
    char temp[5];
        //this sorts each row based
        for(i=0; i<5; i++){
                printf("T1:\n");
            for(j=i+1; j<4; j++)
            {
                printf("T2:\n");
                if(strcmp(str[i],str[j]) > 0)
                {
                    //testing where code crashes
                    printf("T3:\n");
                    strcpy(temp,str[i]);
                    printf("T4:\n");
                    printf("%s\n",temp);//temp has all user input. How?
                    strcpy(str[i],str[j]);//code crashes
                    printf("T5:\n");
                    strcpy(str[j],temp);
                    printf("T6:\n");
                }
            }
        }
    }
    
蓝精灵

qsort像这样使用

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(void){
    char str[5][5];//5 for read 4 character + null-terminator
    int i;

    for(i=0;i<5;i++){
        printf("\nEnter a string %d: ", i+1);
        scanf(" %4[^\n]", str[i]);
    }

    qsort(str, 5, sizeof(*str), (int (*)(const void*, const void*))strcmp);

    puts("");
    for(i=0;i<5;i++){
        puts(str[i]);
    }

    return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何对二维字符串数组进行排序并将其分配给标签

来自分类Dev

使用插入排序按ID对二维字符串数组进行排序-C#

来自分类Dev

二维字符串数组冒泡排序

来自分类Dev

Java对二维字符串数组中的列进行排序

来自分类Dev

如何在C中输出冒泡排序的二维字符串数组?

来自分类Dev

如何在C中输出冒泡排序的二维字符串数组?

来自分类Dev

如何从字符串读取numpy二维数组?

来自分类Dev

如何从二维数组中检索字符串

来自分类Dev

如何使用字符串创建二维数组?

来自分类Dev

如何使用C在二维数组中传递字符串

来自分类Dev

如何使用二维数组制作字符串模式?

来自分类Dev

如何:在二维字符串数组中插入特定字符串

来自分类Dev

C#-字符串数组的二维数组

来自分类Dev

如何将二维字符串数组转换为一维字符串数组?

来自分类Dev

在 C# 中按字符串数组的第二维排序

来自分类Dev

一维字符串数组与C中的二维字符串数组的比较

来自分类Dev

将二维字符串数组转换为二维数组

来自分类Dev

如何从二维字符数组中将对角线提取为字符串?

来自分类Dev

如何将二维数组类型字符(字符串)作为函数参数传递?

来自分类Dev

如何创建一个给定字符串的二维字符数组?

来自分类Dev

替换二维数组中的字符串值

来自分类Dev

C中的二维字符串数组

来自分类Dev

C中的二维字符串数组

来自分类Dev

Javascript二维字符串数组更新值

来自分类Dev

二维字符串数组的创建

来自分类Dev

通过二维数组输入字符串

来自分类Dev

替换二维数组中的字符串

来自分类Dev

Java中的二维字符串数组

来自分类Dev

优雅地指定二维字符串数组

Related 相关文章

热门标签

归档