gpt4 book ai didi

c - 标记一个 c 字符串

转载 作者:太空宇宙 更新时间:2023-11-04 01:24:48 24 4
gpt4 key购买 nike

我正在尝试获取/xxx/之后的字符串,必须有一个正斜杠,其中两个,然后是我需要提取的字符串。这是我的代码,但我不知道在哪里设置空终止符,这里有一道数学题

char str[100] = "/709/usr/datapoint/nviTemp1";
char *tmp;
char token[100];

tmp = strchr(str+1, '/');
size_t len = (size_t)(tmp-str)+1;
strncpy(token, str+len, strlen(str+len));
strcat(token,"\0");

我想提取 /709/ 之后的所有内容,即 usr/datapoint/nviTemp1

请注意/709/是可变的,它可以是任何大小,但肯定会有两个正斜杠。

最佳答案

简单改进:

char str[100] = "/709/usr/datapoint/nviTemp1";
char *tmp;
char token[100];

tmp = strchr(str+1, '/');
if (tmp != NULL) strncpy(token, tmp + 1, sizeof(token)); else token[0] = '\0';

tmp 指向 "/709" 之后的斜杠,所以你想要的就在后面。您不必手动计算长度。

此外,strncpy 最多复制(第三个参数)个字符,因此它应该是目标缓冲区的长度。

关于c - 标记一个 c 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33216449/

24 4 0
文章推荐: c - 为什么转换说明符 %o 和 %x 在 C 语言中对 printf() 和 scanf() 的作用不同?
文章推荐: html - 如何使
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com