[英]char arrays in C and compare
我在C中使用char數組時遇到了一些問題。
我有兩個數組:
char history[10][80];
char *args[80];
我還有一個char inputBuffer[80]
(這包含一個字符串)。 我想要做的是找出history
是否存在*args
的值。
我這樣填寫history
( histCount
介於0到10之間)。
for(j=0; j<MAX_LINE; j++)
{
history[histCount][j] = inputBuffer[j];
}
我無法弄清楚的是我如何循環history
以查看它是否與args[]
匹配。
args[0] == 'romeo'
和history[3][0] == 'r'
則匹配。 args[0] == 'selfie'
和history[7][0] == 's'
則匹配。 我的第一個想法是做這樣的事情,但似乎沒有用
for(k=0; k<10; k++) {
if(args[1] == history[k]) {
printf("FOUND!!\n");
}
}
任何幫助將不勝感激。
for(k=0; k<10; k++)
{
if(strcmp(args[1],history[k]) == 0)
{
printf("FOUND!!");
}
}
我不是百分百肯定我理解。 args [0]是一個指針,可以解釋為一個字符串。 這不是你想要的例子。 你想args [0]是一個char。
int main ( void ) {
char history[10][80]
char *args[80]
int i, j, k;
// filling
for (i = 0; i < MAX_LINE; ++i) {
history[histCount][i] = inputBuffer[i]; // this can be achieved with strcpy();
}
for (i = 0; i < 10; ++i) {
for (j = 0; j < 80; ++j) {
for (k = j; k < 80; ++k) {
if (history[i][j] == args[0][k]) {
printf ("FOUND!!");
return true;
}
}
}
}
它的作用是將歷史作為2D char數組啟動,將args作為char數組啟動。 然后對於每一行,它將歷史的j索引與args的k索引進行比較。
為了它。 一個簡短的演示。
history[0] args
0,0 a b
0,1 a a
0,2 a d
歷史[0] [0]會在args [1]找到相同的字符
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.