C中的sscanf无法解析字符串

时间:2019-11-19 13:05:57

标签: c scanf

请查看以下代码。

#include <stdio.h>

void main(){
    char driver_list[128] = {"123456,fariz,12345678,012-345-6789\n"
                        "234567,山田花子,23456789,012-345-6789\n"};

    int drvrId;
    char drvrName[32] = {0}, coma, userPsswrd[8];

    sscanf(driver_list, "%d%c%[^,]%c%[^,]", &drvrId, &coma, drvrName, &coma, userPsswrd);   
    printf("\n %d %c %s %s\n", drvrId, coma, drvrName, userPsswrd);

}

我期望输出像 “ 123456,fariz 12345678”

但是我越来越 “ 123456,12345678”

当我在该数组(drvrName)中打印每个字符时,第一个字符是 0x00(Null)。所以没有数据打印。怎么可能第一个字符 变为NULL?

请帮助。

0 个答案:

没有答案