c - 如何在c中使用sscanf在分号后分隔数字

标签 c

<分区>

//我想从“hello.mp4;2”中分离出最后一个数字,即“2”作为一个整数 这是代码:

int main()
{

    char str[30];
    int separate = 0;
    strcpy( str, "hello.mp4;2" );
    sscanf(str, "%*[^;]%d", &separate);
    printf("%d\n",separate);
    return 0;

}

它不工作......

最佳答案

sscanf 更改为:

sscanf(str, "%*[^;];%d", &separate);

即,您需要在排除它的字符串之后匹配分号 ;。方括号中的部分匹配分号之前的字符串,留下 ;2。因此,在尝试匹配 2 之前,您需要先匹配分号 ;

关于c - 如何在c中使用sscanf在分号后分隔数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34985034/

相关文章:

c - 为什么当你用字符串初始化一个没有 const 的数组时 gcc 不给出警告?

c - 从 stdin 获取输入的问题 - 来自 valgrind 的读/写无效

c - 重复接受STDIN输入的退出条件

c - strncpy 不能正确存储字符 C

c - 如果我将数组作为参数传递,则从数组中删除结构的函数不起作用

c - 有没有办法使用 C 标准库来测量微秒的时间?

c - 两个程序链接到动态链接库

c - 使用strstr时如何表示 "if substring present in string do something"?

c - 使用函数 fprint 和 int 数组重写文件

编码范式 : Should I Return 0 if Function is Successful?