gpt4 book ai didi

c - 如何通过 sscanf() 获取字符串中的最后一个数字?

转载 作者:行者123 更新时间:2023-12-01 22:17:15 24 4
gpt4 key购买 nike

如果我有:

str1 = "str1s2"
str2 = "djfs1d2.3"

如何通过 sscanf() 获取字符串中的最后一个数字?

我试过:

sscanf(str1, "%*[^0-9]%d", &n1);
sscanf(str2, "%*[^0-9]%d", &n2);

但我只得到第一个数字:

n1 = 1
n2 = 1

最佳答案

使用 %n 说明符存储扫描处理的字符数,您可以遍历字符串直到 scanf 失败。

#include <stdio.h>

int main ( ) {
char str2[] = "2to3";
int span = 0;
int index = 0;
int lastvalue = 0;
int value = 0;

if ( 1 == sscanf ( &str2[index], "%d%n", &value, &span)) {
index += span;
lastvalue = value;
}
while ( 1 == sscanf ( &str2[index], "%*[^0-9]%d%n", &value, &span)) {
index += span;
lastvalue = value;
}
printf ( "last value = %d\n", lastvalue);
return 0;
}

关于c - 如何通过 sscanf() 获取字符串中的最后一个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44088896/

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