c - 我想对c中的字符数组进行排序

标签 c arrays sorting

我想使用 strcmp 对数组进行排序。怎么办?

void sort(char s[100][100], int n){
int i, j, cmp;
char tmp[10];

if (n <= 1)
    return; // Already sorted

for (i = 0; i < n; i++)
{
    for (j = 0; j < n-1; j++)
    {
        cmp = strcmp(&s[i][j],&s[i][j+1]);

        if (cmp > 0)
        {
            strcpy(tmp, &s[i][j+1]);
            strcpy(&s[i][j+1],&s[i][j]);
            strcpy(&s[i][j], tmp);
        }
    }
}}

我为这样的类型的数组调用函数:

int main(){

char *result[6][6];
int a=0;
    int b=1;
    for(a=0; a<5; a++){
    for(b=1;b<4;b++){
        printf("%s\n", result[a][b]);
        sort(result[a][b],6);
    }

}
}

我该如何解决这个问题。现在,我有一个警告

最佳答案

  1. 使用有意义的名称,例如length而不是b

  2. 启用编译器警告:a=sort(result,6); ... int sort(char *a,int b){ 应该生成警告 - 或者获取新的编译器。

  3. temp=a[i][j]; ... ... =temp; 尝试交换指针。代码需要交换数组内容。

  4. char *result[6][6]; 是一个 6x6 的指针数组。代码更像是想要使用 char result[6][6];char *result[6];

  5. 建议重新编写代码,使您的编译器(启用所有警告)不再提示。

关于c - 我想对c中的字符数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27669227/

相关文章:

c - K&R练习2.6位操作

C# Linq - 如果输入不等于任何字符串 []

在嵌套文档之一中按值对文档进行排序

c - 操作数组

c - 在 .csv 文件中搜索 C 中的名称匹配项

c - 从C中的char数组中减去一条信息

c - 第一次创建Stack。一行打印两次。为什么?

c++11 在类定义中为可变大小 std::array 创建数据成员

c - 导致C中无限循环的逻辑错误

javascript - 对键为变量的对象数组进行排序