Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Serzik
-1 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 90
#1

Поиск в массиве строк - C++

13.04.2014, 17:52. Просмотров 659. Ответов 8
Метки нет (Все метки)

Добрый день Возник глупый вопрос. Пытаюсь сделать поис в строковом массиве не как не получается подскажите что не такк.

Сам массив char *cK_Words[] = {"procedure", "case", "of", "end", "begin", "if", "than", "inherited", "Boolean", "Word", "nil"};

Пытаюсь найти это char cTest[] = {"than"};

C++
1
2
3
4
5
for(int i = 0; i <11; i++)
    {
        n = memcmp(cTest,*cK_Words,sizeof(cTest));
    }
    cout << n << endl<<endl;
Выдаёт что не равны в чём мой косяк
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2014, 17:52     Поиск в массиве строк
Посмотрите здесь:

Поиск элементов строк и столбцов в двумерном массиве - C++
Добрый вечер, дорогие форумчане! Имеется такая проблема. Мне необходима функция поиска элементов в двумерном массиве по строкам и...

помогите найти ошибку. Поиск строк в массиве. - C++
Всем доброго времени суток. Возник вопрос по этому коду: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int...

В двумерном массиве заменить элементы строк с четными индексами элементами строк с нечетными индексами - C++
Дан массив чисел, А (5, 4). Превратить массив , заменив элементы строк с четными индексами элементами строк с нечетными индексами (элементы...

Сравнение строк в массиве - C++
В двоичной матрице 10х 10 найти совпадающие строки.

Сортировка строк в массиве - C++
Помогите написать код! никак не получаться! Дана целочисленная матрица A. Получить целочисленную матрицу B путем упорядочивания строк...

Перестановка строк в массиве - C++
Здравствуйте, не могу никак сообразить, как сделать свою задачу: Необходимо переставить строки в матрице. Пример: Исходная матрица: ...

ошибка в массиве строк - C++
Здравствуйте! Попыталась написать код программы,которая сортирует строки в файле (оканчивающиеся символом перевода строки) с помощью...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,186
Завершенные тесты: 1
13.04.2014, 19:37     Поиск в массиве строк #2
сравнение строк
C++
1
int res=strcmp(cTest,cK_Words[i]);
res равно нулю при совпадении.
Serzik
-1 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 90
13.04.2014, 20:53  [ТС]     Поиск в массиве строк #3
Не тоже самое возвращяет 1 такое чувство что он не идёт по массиву а тупо останавливается на 1 слове. Я думал что каждое слово это 1 индекс но вот функция sizeof мне возвращяет не 11 а 44.
BlackSpace
137 / 130 / 52
Регистрация: 15.03.2014
Сообщений: 277
13.04.2014, 22:06     Поиск в массиве строк #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Serzik, почему не используете класс string?
Если на указателях, то в общем случае предлагаю избавиться от сравнения по количеству элементов ( i < 11 ). Как вариант предлагаю сделать так, проверяя указатель на NULL.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <cstring>
 
using namespace std;
 
int main() {
    const char *cK_Words[] = { // NULL в конце массива как метка
            "procedure", "case", "of", "end", "begin", "if", "than", "inherited", "Boolean", "Word", "nil", NULL };
 
    const char cTest[] = "than"; // тестовое слово
 
    int i = 0; // счетчик для элементов массива строк
    while ( true ) {
        const char* currWord = *( cK_Words + i++ ); // очередное слово масства строк
 
        if ( !currWord ) // если указатель стал равен NULL, значит дошли до конца массива строк
            break; // дальше массив строк не пытаемся просмотреть
 
         // сравниваем очередное слово массива строк с тестовым словом
        if ( !strcmp( cTest, currWord ) ) { // если нашли совпадение
            cout << i - 1 << endl; // выводим номер слова в массиве - индексация элементов массива строк с нуля
            break; // дальше массив не просматриваем
        }
    }
    
    return 0;
}
Serzik
-1 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 90
13.04.2014, 22:21  [ТС]     Поиск в массиве строк #5
Спасибо просто указатель для меня в новинку тока не давно стал изучать с++
BlackSpace
137 / 130 / 52
Регистрация: 15.03.2014
Сообщений: 277
13.04.2014, 23:03     Поиск в массиве строк #6
Serzik, рекомендую взять популярную книгу по C++ и прочесть, выполняя примеры из книги.
Список литературы есть на данном форуме. Вот ссылка
Литература C++

Добавлено через 6 минут
И еще может быть Вы имели ввиду не than, а then ?
Serzik
-1 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 90
13.04.2014, 23:04  [ТС]     Поиск в массиве строк #7
Спасибо почетаю. Вот такой возник вопрос по твоему коду когда совпадения есть то всё ок когда совпадений нет он не проверяет конец строки и вылетает окно с ошибкой после чего программа завершается
BlackSpace
137 / 130 / 52
Регистрация: 15.03.2014
Сообщений: 277
13.04.2014, 23:09     Поиск в массиве строк #8
У меня нет никаких ошибок и при совпадении и без совпадений.
Цитата Сообщение от Serzik Посмотреть сообщение
совпадений нет он не проверяет конец строки и вылетает окно с ошибкой после чего программа завершается
Скриншот с ошибкой покажите.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2014, 23:18     Поиск в массиве строк
Еще ссылки по теме:

Поиск в массиве - C++
Найти наименьшую из нечетных компонент вектора и наибольшую из четных компонент. Если они имеют разные знаки, то вычислить сумму элементов...

Поиск в массиве - C++
Дана строка. Определить порядковые номера элементов, которые мы ищем в ней, т.е. мы вбиваем символ и нам выводятся номера на которых он...

Поиск в массиве - C++
Надо найти в массисе чисел со значениями от 0 до 255 повторяющиеся ровно два раза числа. Второй день туплю не могу написать 100% правильно...

поиск в массиве - C++
Надо в массиве найти положительные значения в промежутке между наибольшим и наименьшим элементом. Но в массиве наибольшие и наименьшие...

Поиск в массиве - C++
Срочно нужна помощь! Помогите, кто может... Есть массив С(100), в нем нужно посчитать кол-во последовательностей положительных чисел,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Serzik
-1 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 90
13.04.2014, 23:18  [ТС]     Поиск в массиве строк #9
там эти слова потом подправлю мне нужно сделать сканер кторый будет сканить псевдо код и проверять если такие слова в нём или нет

Добавлено через 8 минут
Всё разобрался
Yandex
Объявления
13.04.2014, 23:18     Поиск в массиве строк
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru