我想根据长度对包含名称的数组进行排序,但是当我尝试使用函数交换它们时,以下程序会给出编译器错误。请帮我识别我的错误。
void sort(char name1[][50])
{
for (int i = 0; i < 5; i++)
{
if (strlen(name1[i])>strlen(name1[i+1]))
{
char temp[50];
temp=name1[i];
name1[i]=name1[i+1];
name1[i+1]=temp;
}
}
}
答案 0 :(得分:0)
使用strcpy()
将一个数组复制到其他
void sort( char name1[][50])
{
for(int i=0; i< 5; i++)
{
if(strlen(name1[i])>strlen(name1[i+1]))
{
char temp[50];
strcpy(temp,name1[i]);
strcpy(name1[i],name1[i+1]);
strcpy(name1[i+1],temp);
}
}
}
答案 1 :(得分:0)
使用strcpy
复制c-string。首先将第一个字符串复制到临时字符串中,然后将第二个字符串复制到第一个字符串中,最后将temp复制到第二个字符串中。
strcpy(temp,name1[i]);
strcpy(name1[i],name1[i+1]);
strcpy(name1[i+1],temp);