gpt4 book ai didi

c - AIX 中 strrspn 和 strfind 函数(Solaris 中的 libgen 函数)的替代方案?

转载 作者:行者123 更新时间:2023-11-30 15:19:21 25 4
gpt4 key购买 nike

对于 AIX 中的 gcc 编译器,我们是否有替代 strrspn 和 strfind 函数(Solaris 中的 libgen 函数)的替代方案?

下面提到了这些功能 -

int strfind(const char *s1, const char *s2);
- The strfind() function returns the offset of the first occurrence of the second string, s2, if it is a substring of string s1. If the second string is not a substring of the first string strfind() returns -1.

char *strrspn(const char *string, const char *cset);
- The strrspn() function trims chartacters from a string. It searches from the end of string for the first character that is not contained in cset. If such a character is found, strrspn() returns a pointer to the next character; otherwise, it returns a pointer to string.

请帮忙解决这个问题吗?

最佳答案

据我所知,没有什么与 strfind 完全一样的。但你可以使用 strstr 来实现它:

int
strfind (const char *haystack, const char *needle)
{
const char *res = strstr(haystack, needle);
// if not found, return -1
if (res == NULL)
return -1;
// else return the offset in haystack
return res - haystack;
}

strrspn 可能有点棘手,但你可以按照以下方式做一些事情:

char*
strrspn (const char *string, const char *cset)
{
size_t len = strlen(strign);
const char *p = string + len;

// start from the back, and look for a char not in cset
while (--p >= string)
if (NULL == strchr(cset, *p))
return p;

return string
}

不用说,这些功能完全未经测试,并且可能无法正常工作,但它们应该可以给您一个想法。

关于c - AIX 中 strrspn 和 strfind 函数(Solaris 中的 libgen 函数)的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30728443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com