我正在尝试在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
(\0
是0
的ASCII解释)。并返回值-1
。
为什么会出现这种行为以及如何解决我的代码以获得正确的结果(返回0
)?
我正在尝试在C字符数组内以逗号分隔的字符串列表中找到第一个字符串(最多4个字符)。我正在尝试通过使用sscanf_s(在Windows下)和format-control ...
关于:
您的代码中存在多个问题: