所以我的.txt文件如下所示:
Firstname MiddleName Lastname
Streetnumber streetname city state zipcode
我可以使用fgets()
轻松阅读每一行;但是我需要将每一位信息存储到它自己的char数组中。
使用fscanf("%s%s%s", %(ptr->name.firstname), %(ptr->name.middlename, %(ptr->name.lastname))
我可以轻松地做到这一点。然而,我遇到的问题是信息之间有空格。例如某人输入了地址信息:
1223 West Minster London CA 12332
使用fscanf(fp, "%s%s%s%s%s", &(ptr->streetno), &(ptr->streetname), &(ptr->city), &(ptr->state), &(ptr->zip)
存储的值为:
streetno: 1222, streetname: West, city: Minster, state: London, zip: CA.
streetname
需要是“西部大教堂”,但fscanf("%s")
会读到空白。
答案 0 :(得分:2)
如果所有单词都用空格分隔,那么单独的地址就不够了。考虑
123 Biddle Lane Fort Lauderdale FL 33301
" dumb"算法知道街道和城市之间的划分发生在哪里?它不能。
但并非一切都没有丢失。如果所有地址都是美国,那么您就有了前进的方向。您可以获得允许将邮政编码映射到城市名称的free database。在许多情况下,这可以解决模糊问题。算法类似于: