c - 在 C 中使用 "fscanf"如何拆分两个字符串?

标签 c list linked-list scanf strtok

我想使用文件操作在 C 中创建一个链表。我想得到一条线并将其拆分并存储在结构中。但是我不能拆分两个字符串。

我的文件是这样的:

1#Emre#Dogan
2#John#Smith
3#Ashley#Thomas
etc...

我想使用 fscanf 从文件中读取一行。

fscanf(file,"%d#%s#%s",&number,name,surmane);

但是结果是

Number : 1
Name : Emre#Dogan

如何去掉名字中的 # 元素并将其拆分为名字和姓氏;

最佳答案

#include <stdio.h>
#include <string.h>

int main(void) {

    FILE *fptr;
    fptr = fopen("Input.txt", "r");

    int number;
    char *name;
    char *surname;
    char line_data[1024];

    fgets(line_data, 1024, fptr);

    number = atoi(strtok(line_data, "#"));
    name = strtok(NULL, "#");
    surname = strtok(NULL, "#");    

    printf("%d %s %s", number, name, surname);
}

输出:

1 Emre Dogan

编辑: 将变量“number”从字符串转换为整数。

关于c - 在 C 中使用 "fscanf"如何拆分两个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19511589/

相关文章:

c - Zend 哈希表 SIGSEGV

c++ - 我可以将 Visual Studio 2005 设置为在调试时忽略特定代码区域中的断言吗

c# - 使用反射与数据库链接的通用列表

c++ - 为双向链表实现复制构造函数时遇到问题

c# - 交换单个链表上的节点

带指针的 C 输出

c - Lua:编译一个包含所有依赖的脚本

C# 组合框未正确从列表中填充

django - 有条件地更改 django admin list_display 中单元格的背景颜色

c - C中基于字符串的链表产生段错误