c - sscanf 字符串拆分不起作用

标签 c string split scanf

谁能解释一下为什么在下面的代码中没有拆分字符串

#include <stdio.h>

int main(void)
{
    char name[] = "first:last";
    char first[20], last[20];

    sscanf(name, "%s:%s", first, last);

    printf("first: %s, last: %s", first, last);

    return 0;
}

输出是

first: first:last, last:

但应该是

first: first, last: last

请在此处检查代码 http://ideone.com/JDSTt

最佳答案

你可以这样使用:

sscanf(name, "%[^:]:%s", first, last);

: 不是空格,因此常规 %s 不会将其视为分隔符。参见 scanf了解更多详情。

(编辑演示:http://ideone.com/m4LVP)

关于c - sscanf 字符串拆分不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8642500/

相关文章:

mysql - 添加一个新列,将列值一分为二,然后在新列中插入一部分值

C复数和printf

javascript - 拆分反斜杠合并拆分元素

c - 如何在 C 中使用 send() 计算字节数,包括协议(protocol)大小?

java - 有什么方法可以找出最后一次在 Java 中访问字符串/整数是什么时候?

c++ - 包含字符串值的结构在使用动态内存分配创建后在分配时导致段错误

string - R - 获取给定时间段内最常见的字符串值(模式)

r - 用R中的定界符分割字符串

c - ARM-linux4.3.2,无法打开PF_PACKET类型的socket

c - 错误: Database is locked when calling sqlite3_exec() from fork() child