我正在尝试从以下字符串中提取城市;
Kmart,佛罗里达州沃尔顿堡滩200 Irwin Ne,
我编写的代码通过字符串,可以提取出来;
佛罗里达州沃尔顿堡滩
但是,我不知道如何有效地提取城市。我可以使用strlen提取状态,但不适用于该城市。
void getCity(char strCity[], const char strLine[])
{
char newLine[MAX_CHARS_PER_LINE+1];
char newCity[MAX_CHARS_PER_LINE+1];
strcpy(newLine, strLine);
char* token = strtok(newLine, ",");
if(token != NULL)
{
token = strtok(NULL,",");
token = strtok(NULL, ",");
}
strcpy(newCity, token);
strcpy(strCity, token);
答案 0 :(得分:2)
采用您拥有的字符串("Fort Walton Beach FL"
),并反向搜索“第一个”(实际上是最后一个)空间。使用例如strrchr
为此。
然后将该空间更改为字符串终止符'\0'
,字符串将变为"Fort Walton Beach"
。
增加指向(以前)空间的指针,如果需要的话,还具有指向状态的第一个字符的指针。