C 如何存储字符串直到找到空白

C 如何存储字符串直到找到空白,c,string,C,String,我需要做一个程序,我需要检查一个文件中的城市名称是否在另一个文件中。 cities.txt文件类似于: 伦敦(2个空间)巴黎(3个空间)巴塞罗那(3个空间)迈阿密(2个空间)东京(2个空间)柏林(3个空间)曼彻斯特(3个空间)罗马(2个空间)悉尼 文件ckeck_cities.text如下所示: 巴塞罗那迈阿密东京悉尼 我将文件check_cities.txt存储到一个struct中,我知道我需要为cities.txt编写一个循环,通过搜索空白,然后将每个单词与整个第二个城市列表(check_c

我需要做一个程序,我需要检查一个文件中的城市名称是否在另一个文件中。 cities.txt文件类似于:

伦敦(2个空间)巴黎(3个空间)巴塞罗那(3个空间)迈阿密(2个空间)东京(2个空间)柏林(3个空间)曼彻斯特(3个空间)罗马(2个空间)悉尼

文件ckeck_cities.text如下所示:

巴塞罗那迈阿密东京悉尼

我将文件check_cities.txt存储到一个struct中,我知道我需要为cities.txt编写一个循环,通过搜索空白,然后将每个单词与整个第二个城市列表(check_cities.txt)进行比较来查找单词边界

问题是我不知道在找到空白后如何存储字符串。谁能告诉我怎么做

'''

#包括
#包括
#包括
#包括
#定义最大城市大小城市名称10
#定义麻木的城市20
#定义最大字符串大小100
文件*fp;
类型定义结构{
char checkcities[最大大小、名称、城市];
}listn;
[麻木的城市];
作废流程(常量字符*城市){
int i=0,j=0;

虽然(iOne非常简单的方法是使用
%s
格式的函数读取文件
cities.txt
。它将读取空格分隔的单词,无论您将check_cities.txt存储到结构中的空格数是多少,您确定它是结构而不是数组吗?城市名称应该存储在数组中,因为数字城市的数量可能会有所不同。数组还允许对其元素进行迭代。您必须这样做才能搜索城市。我只需逐个字符浏览原始文件,将它们复制到目标位置,直到找到一个空间。提供答案的问题是存储单词的方法太多。您应该向我们展示您的代码和您对目标字符串的选择。@一些程序员伙计,但FSF不能正确地读取第一个字符串?如果我将I++放在另一个空格中,因为字符串被2或3个空格分隔。我需要程序读取第一个城市,将其与整个列表进行比较,然后读取下一个城市(字符串)@Cubo78我现在不在家,所以我不能发布代码,但我可以稍后发布。当你说“目的地位置”时,它意味着将城市存储到数组或结构中?
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>

    #define MAX_SIZE_NAME_CITY 10
    #define NUMB_CITIES 20
    #define MAX_STRING_SIZE 100

    FILE *fp;

    typedef struct {
            char checkcities[MAX_SIZE_NAME_CITY];
        }listn;
        listn n[NUMB_CITIES];

    void process(const char *city) {
    int i=0, j=0;

    while(i<strlen(city)-1){ //read all lines
            for ( i = 0; fscanf(fp, "%s", city[i]) == 1; ++i);

            while ((strcmp(city,n[j].checkcities)!=0)&& (j<NUMB_CITIES)){
                    j++;
            }
            if (strcmp(city,n[j].checkcities.)==0){
                printf("%s", n[j].checkcities);
                i++;
            }
            j=0;
    }
}

    int main()
    {
        int i=0;

        FILE *arch;

        arch = fopen("check_cities.txt", "r");

        if (arch==NULL){
            printf("ERROR");
        }
        else{
            while (!feof(arch)){
                fscanf(arch, "%s\n", n[i].checkcities);
                i++;
                // store the names into the struct
            }
        }
        fclose(arch);


        char city[MAX_SIZE_NAME_CITY];
        fp = fopen("cities.txt", "r");
        if (fp==NULL){
            printf("ERROR");
        }while (fgets(city, MAX_SIZE_NAME_CITY,fp) != NULL){
        process(city);}
        fclose(fp);

        return 0;
    }