c语言中的字符串比较

c语言中的字符串比较,c,arrays,string,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].

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

{
#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;
{
#定义最大值3
char*Mystr2[40];
char Mystr1[40];
int i,k,j;

对于(i=0;i你的崩溃是因为
Mystr2[j]=Mystr1
,我想你的意思是
Mystr2[i]=Mystr1


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

您的崩溃是因为
Mystr2[j]=Mystr1
,我想您的意思是
Mystr2[I]=Mystr1


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

您的崩溃是因为
Mystr2[j]=Mystr1
,我想您的意思是
Mystr2[I]=Mystr1


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

您的崩溃是因为
Mystr2[j]=Mystr1
,我想您的意思是
Mystr2[I]=Mystr1



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

看一看和:@yunas基于他显示的代码,而他有其他问题,如何比较字符串不是其中之一。不要使用
get
!我看到了链接。但是当我有两个以上的字符串时,我不能准确地思考。我将get更改为fgets。看一看和:@yunas基于他显示的代码,而他与其他问题一样,如何比较字符串不在其中。不要使用
get
!我看到了链接。但是当我有两个以上的字符串时,我无法准确思考。我将get改为fgets。查看并:@yunas根据他显示的代码,当他有其他问题时,如何比较字符串不在其中。不要使用
get
!我看到了链接。但是当我有2个以上的字符串时。我不能准确地思考。我更改了fgets的GET。查看并:@yunas根据他显示的代码,虽然他有其他问题,但如何比较字符串不是其中之一。不要使用
gets
!我看到了链接。但是当我有2个以上的字符串时,我不能准确地思考。我更改了gets到fgets。谢谢!我可以运行测试。@user3041923:欢迎使用SO!请阅读。您的状态表明您尚未阅读该页面,您可能希望尽快阅读。谢谢!我可以运行测试。@user3041923:欢迎使用SO!请阅读。您的状态表明您尚未阅读该页面,您可能希望尽快阅读。谢谢您!我可以运行测试。@user3041923:欢迎访问SO!请阅读。您的状态表明您尚未阅读该页面,您可能希望尽快阅读。谢谢您!我可以运行测试。@user3041923:欢迎访问SO!请阅读。您的状态表明您尚未阅读该页面,您可能希望尽快阅读。