如何分离特定数据

时间:2019-07-12 21:44:03

标签: c strtok strcpy

我正在尝试从以下字符串中提取城市;

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);

1 个答案:

答案 0 :(得分:2)

采用您拥有的字符串("Fort Walton Beach FL"),并反向搜索“第一个”(实际上是最后一个)空间。使用例如strrchr为此。

然后将该空间更改为字符串终止符'\0',字符串将变为"Fort Walton Beach"

增加指向(以前)空间的指针,如果需要的话,还具有指向状态的第一个字符的指针。