Сканирование массива с помощью strcmp - PullRequest
0 голосов
/ 19 сентября 2011

Мне интересно, есть ли способ сканировать массив на совпадение, используя strcmp. Я знаю, что параметры, переданные в strcmp, являются C-строками. Так что-то подобное не сработает:

strcmp(arrayofstrings[x], c-string)

Ответы [ 2 ]

1 голос
/ 19 сентября 2011

Это будет работать до тех пор, пока аргументы могут быть уменьшены до типа const char*.

char *a[] = { "Hello", "Hello" };  // Array of pointers to c strings
if ( !strcmp(a[0],a[1]) ){
    // true in this case
}
0 голосов
/ 19 сентября 2011

Если вы пытаетесь выполнить поиск по всему массиву, а не просто сравнивать два элемента, вам понадобится цикл.

const int N = 10;
const char * desired = "desiredString";
char * arrayOfStrings[N];

// You should initialize the elements
// in arrayOfStrings[] before searching

// Searching an unsorted array is O(N)
for(i = 0; i < N; i++)
{
    if(strcmp(arrayOfStrings[i], desired) == 0)
    {
        printf("Found %s.", desired);
        break;
    }
}
...