gpt4 book ai didi

c - 纯C : trim all characters in a string after a word occurs

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

我有一个 C 语言字符数组,其值可以是 /path/example/abc。我希望这样 /path/example/ 部分之后的任何字符都会被吞噬,从而重新分配字符串以适应新的大小。是否有一个标准函数或您可以编写的函数可以完成此任务?也许这可以通过像 PCRE 这样的库来完成? 注意:纯粹的、独立于平台的 C 代码将受到赞赏。

示例:

int main()
{
char str[100] = "I am a string";
newStr = globbleAfter(str, "I am a");
printf("%s\n", newStr);
return 0;
}

//=> "I am a"

最佳答案

PRCE 对此似乎有些过分了。只需使用 strstr 在 str 中查找 newStr 即可。示例:

char *gobbleAfter(char *string, char *pattern) {
int len;
char *gobbled;
char *pos=strstr(string, pattern);
if (pos==NULL)
return NULL;
if ((gobbled=malloc(len=((pos-string)+strlen(pos)+1)))==NULL)
return NULL; /* or maybe call an out of memory handler */
memcpy(gobbled, string, len-2);
gobbled[len-1]='\0';
return gobbled;
}

关于c - 纯C : trim all characters in a string after a word occurs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21049651/

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