c语言字符串和结构体中某个值的比较问题

printf("请输入商品名\n");

for(i=0;i<20;i++)

scanf("%s",m[i]);

for(i=0;i<30;i++)

{
c=hw[i].name;

      q=strcmp(m,c);

c的定义为char c【20】 ,m的定义也是

q和i都是int

这段代码报错为

left operand must be l-value

求帮忙啊!!!

2个回答

#include
#include

//商品结构体

typedef struct ShopItem
{
char* name;
int price;
}Item;

//初始化商品
void init(Item* Ce)
{
//为了简便 直接赋值咯
Ce[0].name = "sqrt";
Ce[0].price = 15;
Ce[1].name = "abs";
Ce[1].price = 20;
}

int main()
{
int q = 0;
//2个商品吧
Item ItemCell[2];

init(ItemCell);

printf("请输入商品名\n");

char m[20];
int h = 0;
while (scanf_s("%c", &m[h]) && m[h]!='#')
{
    h++;
}
m[h] = '\0';
printf("m = %s\n",m);
for (int i = 0;i < 2;i++)
{
    q = strcmp(m, ItemCell[i].name);
    if (0 == q) break; //查找正确
}
printf("q = %d",q);
return 0;

}

年前最后一个双休。。。期间没看论坛
灰色字体好像不显示stdio.h string.h

foooox1
foooox1 编译没有错误,但是运行的时候到这个地方就不运行后面了
4 个月之前 回复
foooox1
foooox1 for(i=0;i<30;i++) q=strcmp(m,hw[i].name); 已经改成这样
4 个月之前 回复
foooox1
foooox1 我是想比较
4 个月之前 回复
foooox1
foooox1 方便加个联系方式吗
4 个月之前 回复

用 指针代替:


char *c;

c = &hw[i].name[0];
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问