c++:比较字符串大小报错[error] invalid conversion from 'char' to 'const char*' [-fpermissive]

问题遇到的现象和发生背景

#include<stdio.h>
#include<string.h>
char c[5][80];
int main()
{
for(int i=0;i<5;i++)
{
for(int j=0;j<80;j++)
{
putchar(c[i][j]);
}
}
for(int i=0;i<5;i++)
{
for(int j=0;j<80;j++)
{
if(strcmp(c[i][j],c[i+1][j])>0)
{
char t=c[i+1][j];
c[i+1][j]=c[i][j];
c[i][j]=t;
}
}
}
for(int i=0;i<5;i++)
{
for(int j=0;j<80;j++)
{
printf("%c",c[i][j]);
}
return 0;
}
}
求大佬帮我看看啊55555

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果

修改如下,供参考:

include<stdio.h>
#include<string.h>
char c[5][80];
int main()
{
    char t[80];
    for(int i=0;i<5;i++)//连续输入5个字符串
        gets(c[i]);
    printf("排序前:\n");
    for(int i=0;i<5;i++)//输出 5 个字符串
    {
                   //for(int j=0;j<80;j++)
                   //{
        puts(c[i]);//putchar(c[i][j]);
                   //}
    }
    for(int i=0;i<5-1;i++)
    {
        for(int j=0;j<5-i-1;j++)    //for(int j=0;j<80;j++)
        {
            if(strcmp(c[j],c[j+1])>0)//if(strcmp(c[i][j],c[i+1][j])>0)
            {
                strcpy(t,c[j]);     //char t=c[i+1][j];
                strcpy(c[j],c[j+1]);//c[i+1][j]=c[i][j];
                strcpy(c[j+1],t);   //c[i][j]=t;
            }
        }
    }
    printf("排序后的字符串:\n");
    for(int i=0;i<5;i++)//输出排序后的字符串
    {
                      //for(int j=0;j<80;j++)
                      //{
        puts(c[i]);   //printf("%c",c[i][j]);
                      //}
    }
    return 0;
}

strcmp(c[i][j],c[i+1][j])
这里的参数,你传递的是char字符。
比较的是字符串,而不是字符。


#include<stdio.h>
#include<string.h>
char c[5][80];
int main()
{
for(int i=0;i<5;i++)
{
for(int j=0;j<80;j++)
{
putchar(c[i][j]);
}
}
for(int j=0;j<4;j++)
{
  for(int i<0;i <4-j;i++) {
    if(strcmp(c[i],c[i+1])>0){
      string t=c[i+1];
      c[i+1]=c[i];
      c[i]=t;
    }
  }
}
for(int i=0;i<5;i++)
{
for(int j=0;j<80;j++)
{
printf("%c",c[i][j]);
}
return 0;
}
}

strcmp函数比较的是字符串,如果你要比较特定字符大小,直接比较就行。