c中的字符串比较

时间:2013-11-30 12:13:48

标签: c arrays string

我正在尝试测试名称。当名称已经存在时,用户需要再次输入名称。但程序在运行时会发生冲突。谢谢你的帮助!

{
#define MAX 3
char *Mystr2[40];
char Mystr1[40];
int i,k,j;

for(i=0;i<MAX;i++)
{
    printf("Enter the name:");
    gets(Mystr1);

    Mystr2[j]=Mystr1;//i want to save the string into Mystr[0].[1]

    for (j=0;j<i;j++)//Test the name whether it is same or not
    {
        if(strcmp(Mystr2[j],Mystr2[i])==0)
        {
            printf("They are the same");
                            i--;
                            break;
        }
    }
}
return 0;

}

1 个答案:

答案 0 :(得分:3)

你的崩溃是因为Mystr2[j]=Mystr1,我认为你是Mystr2[i]=Mystr1

逻辑无论如何都不会起作用,因为Mystr2将始终指向当时Mystr1中的内容;将声明更改为char Mystr2[MAX][40]strcpy()