[英]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.