gpt4 book ai didi

C语言: How to get number from string via sscanf?

转载 作者:太空狗 更新时间:2023-10-29 16:12:38 25 4
gpt4 key购买 nike

最近我需要从字符串中提取一个数字,但是在非常老的 C 上不支持像 strtok 这样的方法函数。我更喜欢 sscanf,但我无法理解它。请注意,整数位于随机位置(用户定义)。

一般来说,这就是我想要发生的例子:

Input:
char * string = "He is 16 years old.";

Output:
16

最佳答案

数字过滤和 sscanf() 的组合应该可以。

int GetNumber(const char *str) {
while (!(*str >= '0' && *str <= '9') && (*str != '-') && (*str != '+')) str++;
int number;
if (sscanf(str, "%d", &number) == 1) {
return number;
}
// No int found
return -1;
}

溢出的数字需要额外的工作。

下面是一个较慢但迂腐的方法

int GetNumber2(const char *str) {
while (*str) {
int number;
if (sscanf(str, "%d", &number) == 1) {
return number;
}
str++;
}
// No int found
return -1;
}

关于C语言: How to get number from string via sscanf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21884059/

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