sscanf_s不返回字符串的第一个字符

问题描述 投票:0回答:2

我正在尝试在C字符数组内的逗号分隔的字符串列表中找到第一个字符串(最多4个字符。)>

我正在尝试使用sscanf_s(在Windows下)和格式控制字符串%[^,]

char mystring = "STR1,STR2";
char temp[5];

if (sscanf_s(mystring, "%[^,]", temp, 5) != 0) {
    if (strcmp(temp, "STR1") == 0) { return 0; }
    else if (strcmp(temp, "STR2") == 0) { return 1; }
    else { return -1; }
}

调用sscanf_s后,temp的内容不是STR1,而是\0TR1\00的ASCII解释)。并返回值-1

为什么会出现这种行为以及如何解决我的代码以获得正确的结果(返回0)?

我正在尝试在C字符数组内以逗号分隔的字符串列表中找到第一个字符串(最多4个字符)。我正在尝试通过使用sscanf_s(在Windows下)和format-control ...

c string windows char scanf
2个回答
0
投票

关于:


0
投票

您的代码中存在多个问题:

© www.soinside.com 2019 - 2024. All rights reserved.