4

文字列を分割して最後の要素を選択する最も効果的な方法は何ですか?

つまり、「www.google.com」という文字列があります。

この文字列を「。」で分割したいと思います。が発生し、「com」になる最後の要素を選択します

4

3 に答える 3

1

私は個人的にこのようなことをし、関数の使用をスキップすると思います (一部のバージョンはstrrchr実際にこのように動作する可能性がありますが、必ずしも保証されているとは思いません):

char *findlast(char *str)
{ char *c = str, p = NULL; // assuming str is your input string
  while (*c)
  { if (*c == '.')
      p = c;
    ++c;
  }
  if (p)
  { // p points to the last occurrence of '.'
    if (*(p+1)) // '.' is not last character
      return p+1
    else
      // not sure what you want here - p+1 points to NULL and would be semantically
      // correct, but basically returns a 0-length string; return NULL might be better
      // for some use cases...
  }
  else
  { // p is NULL, meaning '.' did not exist in str
    return p;
  }
} 
于 2013-10-28T16:11:53.273 に答える
0

strtok次のように 使用できます

char str[] ="www.google.com";
  char *token;
  token = strtok (str,".");
  char *lastToken ;
  while (token != NULL)
  {
    lastToken = token ;
    token = strtok (NULL, ".");
  }
  printf("last token - %s",lastToken); 
于 2013-10-28T16:01:24.200 に答える