我试图在 C 语言中将一个字符串拆分成不同的部分。在 C# 中,我只使用了 split()
,它创建了一个数组来轻松访问拆分字符串的每个部分。现在在 C 中,我正尝试像这样拆分字符串:"STXS1-21|S2-23ETX"
。我想单独得到数字 21 和 23。如果我使用 "STX-|ETX"
的分隔符字符串 strtok
,据我所知,我会得到:
S1-21|S2-23ETX
21|S2-23ETX
S2-23ETX
23ETX
虽然我试图单独获得数字 21 和 23,但我该如何完成呢?
最佳答案
在您的具体示例中,您可以这样做:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char str[] = "STXS1-21|S2-23ETX";
char *sptr = str;
while (sptr = strchr(sptr, '-'))
printf("%d\n", atoi(++sptr));
return 0;
}
程序输出:
21
23
关于c - strtok:获取分隔符之前的值,而不仅仅是之后的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33878483/