簡體   English   中英

C中的char數組並進行比較

[英]char arrays in C and compare

我在C中使用char數組時遇到了一些問題。

我有兩個數組:

char history[10][80];
char *args[80];

我還有一個char inputBuffer[80] (這包含一個字符串)。 我想要做的是找出history是否存在*args的值。

我這樣填寫historyhistCount介於0到10之間)。

for(j=0; j<MAX_LINE; j++)
{
    history[histCount][j] = inputBuffer[j];
}

我無法弄清楚的是我如何循環history以查看它是否與args[]匹配。

  1. 示例如果args[0] == 'romeo'history[3][0] == 'r'則匹配。
  2. 如果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.

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