[英]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 INSIDE
或IS C INSIDE
, IS <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.