我需要做的是找到特定字符串所在的位置,并仅保留其后面的内容。
伪代码:
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的一部分,则返回null指针。
以您的示例为例:
char *string3 = strstr(string1,"walrus")
或者,如果你想根据分隔符(例如::
)将字符串拆分为标记,可以使用strtok
。
char * strtok ( char * str, const char * delimiters );
将字符串分割成标记
调用此函数的序列将str分割为标记,这些标记是由定界符中任何字符分隔的连续字符序列。
以您的示例为例,
strtok(string1, "::");
string3 = strtok(NULL,"::")
strtok
是一个棘手的函数,因为它会修改您正在分词的字符串,并且也不是可重入的。这里有一篇好的文章解释了使用 strtok
的总体方面。