gpt4 book ai didi

c - 如何传递指向字符串的指针、指向子字符串的指针并返回其他内容?

转载 作者:太空宇宙 更新时间:2023-11-04 05:33:10 26 4
gpt4 key购买 nike

我在一个空间极其有限的 MCU 上,不知何故我在 C 中丢失了我的引用。我想要这样的格式:

int commandsubstring(char *stringaddress,char *substringaddress);

但是,我在 ASM 中执行了这个例程,因为我在 C 中遇到了一些问题并且只是想完成它。既然已经完成了,我想修复它。该函数的作用是读取 SCPI。命令。我采用“MEASure:VOLTage:DC?”的格式。然后我递归地返回命令。在我的例子中,想要返回子串的地址

 MEASure:VOLTage:DC?
^ ^

我希望能够做类似的事情:

char *cmd="MEASure:VOLTage:DC?";
char *subcmd;
commandsubstring(cmd, subcmd);
printf("%s\n", cmd);
printf("%s\n", subcmd);

然后得到

的结果
 MEASure:VOLTage:DC?
VOLTage:DC?

我不确定为什么,但我在这个过程中的某个地方丢失了我的指针。在其余代码中,我只是返回结构,但由于这个特定部分是递归的,我想尝试一些我觉得更安全的东西,但我似乎无法正确地使用 C,这只是一个脑洞某处。如有任何帮助,我们将不胜感激。

编辑这不是关于标记化的问题,而是正确返回同一字符串中不同位置的正确方法。

最佳答案

也许这个例子会有所帮助:

#include <stdio.h>

int commandsubstring(char *stringaddress,char **substringaddress)
{
char * ptr = stringaddress;
while (ptr!=0) {
if ((*ptr)==':') {
*substringaddress = ptr+1;
break;
}
ptr++;
}
return 0;
}

int main()
{
char *cmd="MEASure:VOLTage:DC?";
char *subcmd;
commandsubstring(cmd, &subcmd);
printf("%s\n", cmd);
printf("%s\n", subcmd);

return 0;
}

关于c - 如何传递指向字符串的指针、指向子字符串的指针并返回其他内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52874635/

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