簡體   English   中英

比較 C 中的字符串和字符

[英]Compare a String with a Char in C

我對此有疑問:

char procNames[10][80];

[...]

strncpy(procNames[i], readedLineFromBuffer, 80);

在 readedLineFromBuffer 上只輸入一個字符。

然后我想將我通過標准輸入輸入的另一個字符與我存儲在 procNames 中的字符進行比較。

因此,例如,我有:

procNames[0]: A
procNames[1]: B
procNames[2]: C

而且,通過標准輸入緩沖區(在我的程序中命名的line )我寫IS B INSIDEIS C INSIDEIS <CHARACTER> INSIDE ...

所以我得到line[3] ,這將是 B 或 C 字符,我想檢查line[3]是否存儲在 procNames 中。

我執行以下操作:

for(int strgName = 0; strgName < processNumber; strgName++) {
    if(strncmp(line[3], procNames[strgName], 1) == 0) {
        fprintf(stdout, "MATCH: %s\n", strgName, procNames[strgName]);
        isInsideProgram = true;
    }
} 

但是strncmp()會引發段錯誤。 如何比較procnames[10][80] (即一個字符)與line[3]中的內容? 我已經嘗試使用strcmp()line[3] == procNames[strgName]但它也會引發段錯誤......

編輯:通過比較line[3] == procNames[strgName][0]解決了很多問題!

line[3]char ,但前兩個 arguments 到strncmp()必須是char * 您可以使用&line[3]

但更簡單的是直接比較字符:

if (line[3] == procNames[strgName][0])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM