程序无法匹配变量中的数据

时间:2016-11-13 11:30:27

标签: c

这是我的“电话簿”计划的一部分。

void viewone(){


    char name[25], fname[25];

    int n, ncheck, op;

    fp = fopen("Phonebook.txt","r");

    printf ("\n Search by : \n 1: Name\n 2: Phone Number\n");
    printf ("Enter option : ");
    scanf ("%d",&op);

    switch(op){

        case 1:
            printf ("\n Enter Name : ");
            scanf ("%s",name);

            fscanf(fp, "%s %d", fname, &ncheck);

            while (!feof(fp)){

                printf ("\n\n %s \n\n",fname);

                if (fname == name){              \\ Problem in here

                    printf ("\n\n Contact Found...\n");

                    printf (" %s +880%d", fname, ncheck);

                    break;

                }

                else{

                    fscanf(fp, "%s %d", fname, &ncheck);

                }

                if (feof(fp)){

                    printf ("\n\n Contact Not Found...\n\n");

                }

            }

            menu();

            break;

        case 2:

            printf ("\n\n Enter Contact Number (+880) : ");
            scanf ("%d",&n);

            fscanf(fp, "%s %d", fname, &ncheck);

            while (!feof(fp)){

                if (ncheck == n){

                    printf ("\n\n Contact Found...\n");

                    printf (" %s +880%d\n", fname, ncheck);

                    break;

                }

                else{

                    fscanf(fp, "%s %d", fname, &ncheck);

                }

                if (feof(fp)){

                    printf ("\n\n Contact Not Found...\n\n");

                }

            }

            menu();

            break;

        default:

            printf ("\n Wrong option...\n\n");

            viewone();

            break;
        }

    }

当涉及标记的行时,程序应在文件中搜索“fname”字符,直到它与“name”字符匹配。但尽管它们匹配,但没有任何反应,程序仍在继续。最后,它完成了else语句中的内容。我的问题是为什么会发生这种情况,我该如何解决?

当我使用电话号码搜索时,我的程序运行完美。但为什么它没有发生在性格上呢?

1 个答案:

答案 0 :(得分:-1)

比较字符串不是由==完成的。而是像这样使用字符串比较功能

strcmp(fname,name)