我试图在C中实现一个小的splitStringByString()函数,这是我到目前为止的方式:
for i in bs0bj.find_all(id="gift1"):
print(i.get_text())
print(i.img.get('src'))
所以它或多或少都有效; 该函数根据需要返回分隔符后的字符串,但在此字符串的末尾(最后一个字符)始终为\ 377。 我已经发现一些东西说这是一个八进制数左右({{3}}),但对我来说不是很清楚。你能帮帮我,给我一些关于我做错了什么的建议吗?
非常感谢! : - )
答案 0 :(得分:2)
我不理解你的代码,但要做你在评论中提到的内容
char *splitSstring(char *haystack, char *separator)
{
char *result = (haystack == NULL || separator == NULL || !strlen(haystack) || !strlen(separator)) ? NULL : haystack;
if (result != NULL)
{
result = strstr(haystack, separator);
if (result != NULL) result += strlen(separator);
}
return result;
}
或者如果你想将它放在单独的字符串中
char *splitSstring(char *haystack, char *separator, char *res)
{
char *result = (haystack == NULL || separator == NULL || !strlen(haystack) || !strlen(separator)) ? NULL : haystack;
if (result != NULL)
{
result = strstr(haystack, separator);
if (result != NULL)
{
result = result + strlen(separator);
if(res == NULL) res = malloc(strlen(result) + 1);
if(res != NULL) strcpy(res, result);
result = res;
}
}
return result;
}
您可以为函数提供自己的缓冲区,或者如果传递NULL,它将为您分配。但你需要记住释放它;