首页 > 解决方案 > 如何从文件中获取全名并将其与用户搜索的内容进行比较?

问题描述

所以在这里我有一个功能可以扫描具有单个名称的文件和电话号码,例如“andy 12345678”,当用户搜索名称 andy 时,它会找到它并打印答案,现在我希望它更多复杂的可以说文件有一个全名和他们的编号像这样“andy bob mike 12345678”现在当我使用代码时它会打印“andy bob”因为它fscan前两个名字“andy”和“bob”所以我怎么能更改它可以单独扫描全名的代码,并将其与搜索的用途进行比较并打印带有数字的全名注意全名可以像“andy bob”或“andy bob mike”或“andy”一样数字

    void SearchPhoneBook()
{
    FILE *ph;
    ph = fopen("C:/Users/ec/Desktop/PhoneBook.txt", "r");
    printf("Enter the name you want to search for\n");


        char temp;
        char name[50];
        char Mobile[50];

        scanf("%c", &temp);
        char Search[20];
        scanf("%s", Search);






    while (fscanf(ph, "%s %s", name, Mobile) != EOF)
    {
            if (strcmp(name, Search) == 0)
            {
                printf("%s ", name);
                printf("%s", Mobile);
            }
    }


    MainMenu();
}

标签: c

解决方案


在这种情况下,您可以使用通配符并name在找到某个数字时停止扫描

char name[100];
char mobile[50];

fscanf(ph, "%99[^0123456789] %49s", name, mobile);

推荐阅读