按字母顺序在c中按字母顺序排列字符串

时间:2018-07-07 18:55:47

标签: c

我试图通过传递参数的字母顺序排列数组字符串,但是它显示了一些错误。

字符串输入:C C ++ Java PHP Python Perl Ruby R JavaScript PHP

所需的输出:C C ++ Java JavaScript PHP PHP PHP Perl Python R Ruby

我已经尝试过:

void lexi(char str[]){
    int i,j;
    for(i=0; i<9; i++){
        for(j=i+1; j<10 ; j++)
        {
            if(strcmp(str[i], str[j])>0)
            {
                strcpy(temp, str[i]);
                strcpy(str[i], str[j]);
                strcpy(str[j], temp);
            }
        }
    }
}

int main()
{
    int i;
    char str[10][50], temp[50];

    for(i=0; i<10; i++)
        scanf("%s",str[i]);

    lexi(str);

    for(i=0; i<10; i++)
    {
        printf("%s",str[i]);
    }

    return 0;
}

1 个答案:

答案 0 :(得分:1)

在对main函数lexi()的调用中,您正在传递数组str。

lexi(str);

但是,在您的定义中,str缺失。该代码甚至无法编译。

void lexi(){
    ...
}

编译器还会抱怨许多其他错误。对于从scanf读取的字符串,最好使用malloc数组。您还需要了解字符数组和字符串之间的区别。它们不一样。您还必须了解变量的范围。