簡體   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