在C ++中使用2d数组进行交换

时间:2017-04-01 14:53:50

标签: c++ arrays multidimensional-array

我想根据长度对包含名称的数组进行排序,但是当我尝试使用函数交换它们时,以下程序会给出编译器错误。请帮我识别我的错误。

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;    
        }   
    }
}

2 个答案:

答案 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);