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

标签 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 语句中的指示执行操作。我的问题是为什么会发生这种情况以及如何解决它?

当我使用电话号码搜索时,我的程序运行完美。但为什么角色没有发生这种情况呢?

最佳答案

比较字符串不是通过 == 完成的。而是使用像这样的字符串比较函数

strcmp(fname,name)

关于c - 程序无法匹配变量中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40573297/

相关文章:

c - 请检查我的代码。不会返回正确的值

c - MagickCore - 卡在 ReadImage 之后

c - 混合数据类型(int、float、char 等)如何存储在数组中?

c - 如果两个相似的字符串长度不同,strcmp 会返回什么?

C 编程——为什么 gets() 不接受输入?

c++ - 这是什么控制风格?

c - 如何使一个函数中的变量对其他函数可见

c - C 中的 FTP : 331/530 Please specify password

c - 让我知道以下有关 USB 调制解调器插件和插件通知处理程序 API 或 Linux 中的系统调用的信息

c - 在c中打印多维数组