| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9018 人关注过本帖, 1 人收藏
标题:请哪位大侠帮忙看一下,为什么我的程序老是提示error C2106: '=' : left op ...
取消只看楼主 加入收藏
xiaodeo
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-25
结帖率:0
收藏(1)
已结贴  问题点数:20 回复次数:6 
请哪位大侠帮忙看一下,为什么我的程序老是提示error C2106: '=' : left operand must be l-value
麻烦哪位高手帮忙看一下,谢谢了

#include<stdio.h>
#include<string.h>
//#include<math.h>
//#define  uint unsigned int
//#define N 10

int sort(char (*p)[5])
{
    int i;
    char p1[5];

//    p1 = NULL;

    for (i=0; i<3; i++)
    {   
        if (strcmp(*(p+i),*(p+i+1))>0)
        {
            p1 = *(p+i);
            *(p+i) = *(p+i+1);
            *(p+i+i) = p1;
        }
                    
    }
    return 0;
}


int main(void)
{
    int i;
    char a[5][5];
    printf("please input five string\n");
    for (i=0; i<5; i++)
    {
        scanf("%s",a[i]);
    }
   
    sort(a);
   
    for (i=0; i<5; i++)
    {
        printf("%s\n",a[i]);
    }
    return 0;

}





提示
--------------------Configuration: pointerasvar - Win32 Debug--------------------
Compiling...
pointerasvar.c
D:\我的文档\桌面\C语言代码\pointerasvar.c(18) : error C2106: '=' : left operand must be l-value
D:\我的文档\桌面\C语言代码\pointerasvar.c(19) : error C2106: '=' : left operand must be l-value
D:\我的文档\桌面\C语言代码\pointerasvar.c(20) : error C2106: '=' : left operand must be l-value
Error executing cl.exe.

pointerasvar.obj - 3 error(s), 0 warning(s)




[ 本帖最后由 xiaodeo 于 2010-10-25 21:51 编辑 ]
搜索更多相关主题的帖子: operand left 
2010-10-25 17:30
xiaodeo
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-25
收藏
得分:0 
谢了楼上的,利用指针数组来处理我已经会了~
2010-10-25 21:26
xiaodeo
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-25
收藏
得分:0 
回复 2楼 清风拂晓
我找了一些资料看了一下,发现我的程序就是交换内容的,但是因为是字符串的原因,不能用str1 = str2;这样交换~,这样理解不知道对不对~
2010-10-25 21:31
xiaodeo
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-25
收藏
得分:0 
回复 6楼 m21wo
谢谢,我懂了~
2010-10-25 21:57
xiaodeo
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-25
收藏
得分:0 
回复 8楼 m21wo
嗯,程序是看得懂了,也看了一些资料,有点理解了~,因为如果函数传递的只是一个地址,要交换字符串,就要用strcpy()或是是指针数组来处理~
2010-10-25 22:09
xiaodeo
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-25
收藏
得分:0 
回复 10楼 m21wo
嗯,谢谢你~            我对我上面的程序象下面解释不知道有没有问题~


#include<stdio.h>
#include<string.h>
//#include<math.h>
//#define  uint unsigned int
//#define N 10

int sort(char (*p)[5])//可能是因为行地址和首地址是同一个值,所以就不能改变
{
    int i;
    char (*p1)[5];

    p1 = NULL;

    for (i=0; i<3; i++)
    {   
        if (strcmp(p[i],p[i+1])>0)
        {
            p1 = *p[i+1];  //改变首个字符,后面的没有变
            *p[i+1] = *p[i];
            *p[i] = p1;
        /*
            p1 = *p;   // 单个元素值赋给了一个指向数组的指针变量,这是错误的;
            p = *(p+i);
            (p+i) = *p1;
        */
        }
                    
    }
    return 0;
}


int main(void)
{
    int i;
    char a[6][5];
    printf("please input five string\n");
    for (i=0; i<6; i++)
    {
        scanf("%s",a[i]);
    }
   
    sort(a);
   
    for (i=0; i<5; i++)
    {
        printf("%s\n",a[i]);
    }
    return 0;

}


我这样解释我这程序对不对呢?



[ 本帖最后由 xiaodeo 于 2010-10-25 23:18 编辑 ]
2010-10-25 23:17
xiaodeo
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-25
收藏
得分:0 
回复 12楼 m21wo
上面的是不能,下面的就可以。上面的程序我只是说,我这样解释那些语句对不对


#include<stdio.h>
#include<string.h>
//#include<math.h>
//#define  uint unsigned int
//#define N 10


//利用指针数组来处理字符串比较

int sort(char *p[])
{
    int i, j;
    char *p1;

//利用冒泡法排列数组

    for (i=0; i<4; i++)
    {    for(j=0; j<4-i; j++)
        {
            if (strcmp(*(p+j),*(p+j+1))>0)
            {
                p1 = *(p+j);
                *(p+j) = *(p+j+1);
                *(p+j+1) = p1;
            }
        }            
    }
    return 0;
}


int main(void)
{
    int i;
    char a[5][5];
    char *p[5];
    printf("please input five string\n");
    for (i=0; i<5; i++)
    {
        p[i] = a[i];
    }
    for (i=0; i<5; i++)
    {
        scanf("%s",p[i]);
    }
   
    sort(p);
   
    for (i=0; i<5; i++)
    {
        printf("%s\n",p[i]);
    }

    return 0;

}

2010-10-26 23:29
快速回复:请哪位大侠帮忙看一下,为什么我的程序老是提示error C2106: '=' : le ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023994 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved