我需要做的是找到某个字符串的位置,然后只保留之后的位置。
伪代码:
string1 = "CDSDC::walrus"
string2 = "::"
string3 = (substr( string1, strfind(string1, string2) + 2 )) // +2 being the len of str2
// at this point I want string3 == "walrus"
strstr
做你想做的事。即定位子字符串。
const char * strstr ( const char * str1, const char * str2 );
返回指向 str1 中第一次出现 str2 的指针,如果 str2 不是 str1 的一部分,则返回空指针。
对于你的例子,
char *string3 = strstr(string1,"walrus")
或者,如果您想根据分隔符将字符串拆分为标记,例如::
use 可以使用strtok
char * strtok ( char * str, const char * delimiters );
将字符串拆分为标记
对该函数的一系列调用将 str 拆分为标记,这些标记是由作为定界符一部分的任何字符分隔的连续字符序列。
对于你的例子,
strtok(string1, "::");
string3 = strtok(NULL,"::")
strtok
是一个棘手的功能,因为它修改了您正在标记的字符串并且也不是 re-rentrant。这是一篇很好的文章,解释了使用的整体方面strtok