gpt4 book ai didi

来自多个函数的全局字符串的 C strtok

转载 作者:太空宇宙 更新时间:2023-11-04 04:03:49 25 4
gpt4 key购买 nike

我使用要解析的全局字符串。解析是从多个函数完成的。例如,我在 func1() 中提取第一个标记,然后在 func2() 中从同一个全局字符串中提取第二个标记,等等...
这可能吗?我知道在第一个之后提取 token 是由 strtok(NULL,delimiter) 完成的,strtok 将指向下一个字节的指针保存到用 null 替换的分隔符,但我找不到关于 strtok 究竟如何保存字符串的描述它在不同的函数中定义何时完成。

最佳答案

可能。strtok 将字符串保存到静态内存。

例如

#include <stdio.h>
#include <string.h>

char sentence[] = "The quick brown fox jumps over the lazy dog";
char* sentencep = sentence;

char* func1(void){
char* p = sentencep;
if(sentencep != NULL)
sentencep = NULL;
return strtok(p, " ");
}

char* func2(void){
char* p = sentencep;
if(sentencep != NULL)
sentencep = NULL;
return strtok(p, " ");
}

int main(){
puts(func1());//The
puts(func2());//quick
puts(func2());//brown
puts(func1());//fox
return 0;
}

关于来自多个函数的全局字符串的 C strtok,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8633849/

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