我正在尝试测试名称。当名称已经存在时,用户需要再次输入名称。但程序在运行时会发生冲突。谢谢你的帮助!
{
#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;
}
答案 0 :(得分:3)
你的崩溃是因为Mystr2[j]=Mystr1
,我认为你是Mystr2[i]=Mystr1
。
逻辑无论如何都不会起作用,因为Mystr2
将始终指向当时Mystr1
中的内容;将声明更改为char Mystr2[MAX][40]
和strcpy()
。