拆分字符串并使用 C 获取最后一部分
split a string and get the last part using C
我有一个字符串 "some random data/1000"
。现在,我只想要数字(1000
)而不将第一部分存储在任何地方。我应该直接得到最后一部分,即数字。 C语言怎么实现?
这里'/'
是分隔符。
有很多方法可以做到这一点,但在您的特定情况下
char string[] = "some random data/1000";
char *pointerTo1000 = strchr(string, '/');
if (pointerTo1000 != NULL)
{
pointerTo1000 += 1;
printf("%s\n", pointerTo1000);
}
应该输出1000
,如果你想把它转换成数字
char *endptr;
int value = strtol(pointerTo1000, &endptr, 10);
if (*endptr == '[=11=]')
printf("converted successfuly: %d\n", value);
如果 some random data
包含斜杠 /
那么 unwind 建议的 strrchr
是正确的选择,您可以完全按照我的示例使用它。
如果您确定只有一个分隔符,我会简单地使用 strrchr()
1 来找到它。然后要么直接将数字转换为整数(使用例如 strtol()
),要么分配一个新字符串并将第一个字符串的尾部复制到那里。
1 请注意中间r
,是向后.
搜索
我有一个字符串 "some random data/1000"
。现在,我只想要数字(1000
)而不将第一部分存储在任何地方。我应该直接得到最后一部分,即数字。 C语言怎么实现?
这里'/'
是分隔符。
有很多方法可以做到这一点,但在您的特定情况下
char string[] = "some random data/1000";
char *pointerTo1000 = strchr(string, '/');
if (pointerTo1000 != NULL)
{
pointerTo1000 += 1;
printf("%s\n", pointerTo1000);
}
应该输出1000
,如果你想把它转换成数字
char *endptr;
int value = strtol(pointerTo1000, &endptr, 10);
if (*endptr == '[=11=]')
printf("converted successfuly: %d\n", value);
如果 some random data
包含斜杠 /
那么 unwind 建议的 strrchr
是正确的选择,您可以完全按照我的示例使用它。
如果您确定只有一个分隔符,我会简单地使用 strrchr()
1 来找到它。然后要么直接将数字转换为整数(使用例如 strtol()
),要么分配一个新字符串并将第一个字符串的尾部复制到那里。
1 请注意中间r
,是向后.