文字列を分割して最後の要素を選択する最も効果的な方法は何ですか?
つまり、「www.google.com」という文字列があります。
この文字列を「。」で分割したいと思います。が発生し、「com」になる最後の要素を選択します
文字列を分割して最後の要素を選択する最も効果的な方法は何ですか?
つまり、「www.google.com」という文字列があります。
この文字列を「。」で分割したいと思います。が発生し、「com」になる最後の要素を選択します
私は個人的にこのようなことをし、関数の使用をスキップすると思います (一部のバージョンは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;
}
}
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);