繁体   English   中英

在C中搜索char数组中的字符串

[英]Searching char array for string in C

我有一个看起来像这样的字符串:

"show net\r\r\nSSid=roving1\r\nChan=1\r\nAssoc=FAIL\r\nRate=12,   24Mb\r\nAuth=FAIL\r\nMode=NONE\r\nDHCP=FAIL\r\nBoot=0\r\nTime=OK\r\nLinks=0\r\n<4.00> "

这是我从外围设备收到的数据,我想扫描它的字符串“Auth = FAIL”。 我正在使用以下命令查询它:

res = strstr(uart_rd, "Auth=FAIL");

但是,它返回值0.但是如果我只是发出命令:

res = strstr("nnAuth=FAILn", "Auth=FAIL");

它返回一个值。 当它试图搜索我的char数组uart_rd时会出现什么问题?

编辑:

看起来问题是我在将新数据放入其中之前清除数组所做的memset。 我使用命令填充0:

memset的(uart_rd,0,的sizeof(uart_rd));

而我现在把它改成了

memset的(uart_rd, “”,的sizeof(uart_rd));

这一切似乎都在起作用。 感谢您帮助诊断我的问题所在!

好吧,这段代码

    char uart_rd[] = "show net\r\r\nSSid=roving1\r\nChan=1\r\nAssoc=FAIL\r\nRate=12,   24Mb\r\nAuth=FAIL\r\nMode=NONE\r\nDHCP=FAIL\r\nBoot=0\r\nTime=OK\r\nLinks=0\r\n<4.00> ";
    char *res;
    res = strstr(uart_rd, "Auth=FAIL");
    printf("%s", res);

给出这个输出:

Auth=FAIL
Mode=NONE
DHCP=FAIL
Boot=0
Time=OK
Links=0
<4.00>

所以你最好检查你的字符串声明。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM