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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.92
colding54
Заблокирован
#1

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

06.04.2012, 20:04. Просмотров 3915. Ответов 3
Метки нет (Все метки)

Здравствуйте. Задача стоит найти слово в массиве, если слово найдется, то вывести его индекс. Если нет, то вывести "Слово не найдено". Собственно основная часть есть, осталось сделать вывод фразы, если слово не найдено.
Была мысл(мне кажется полнейшей чушью) ввести int k; и присвоить k=i;

Вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    if(slovo!=0)
{
    for(i=0;i<a;i++)
    {
     if(strcmp(slovo,mass[i])==0)
     {
      printf("\n indeks  %d",i);
     k=i;
     }
    }
//Затем сделать такой ход здесь 
if(strcmp(slovo,mass[k]))!=0) printf("нет такого слова");
}

Это без вывода фразы, здесь работает поиск и вывод индекса
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
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <iostream>
#include <string.h>
 
int main()
{
    char mass [80][80];
    char slovo[80];
    int i=0;
    int a;
    
 
FILE *f;
f=fopen("f.txt", "r");
if(f==NULL) printf("файл f.txt файл не открыт\n");
 
while(!feof(f))
{
     fscanf(f,"%s",&mass[i]);
     printf("%s\n", mass[i]);
     i++;
}
a=i;
printf("Введите слово для поиска: ");
gets(slovo);
 
    if(slovo!=0)
{
    for(i=0;i<a;i++)
    {
     if(strcmp(slovo,mass[i])==0)
     {
      printf("\n indeks  %d",i);
     }
    }
}
 
 
    return 0;
}
Текстовый файл выглядит так:
privet
hi
go
to
do
pay

Добавлено через 38 минут
Ребята получился вывод фразы, если слово не найдено.

Но что-то не дает покоя, и говорит внутри меня "бестолковый вариант!!!".
Подскажите как можно переделать вывод фразы.

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <conio.h>
 
int main()
{
    char mass [80][80];
    char slovo[80];
    int i=0;
    int a;
    int k;
FILE *f;
f=fopen("f.txt", "r");
if(f==NULL) printf("файл f.txt не открыт\n");
 
while(!feof(f))
{
     fscanf(f,"%s",&mass[i]);
     printf("%s\n", mass[i]);
     i++;
}
a=i;
printf("Введите слово для поиска: ");
gets(slovo);
 
    if(slovo!=0)
{
    for(i=0;i<a;i++)
    {
     if(strcmp(slovo,mass[i])==0)
     {
      printf("\n индекс слова %d",i);
      k=i;
     }
 
    }
if(strcmp(slovo,mass[k])!=0)printf("слово не найдено");
 
}
getch();
}
Добавлено через 1 час 16 минут
UP !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2012, 20:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск слова в массиве (C++):

поиск слова в массиве - C++
как реализовать поиск слова в массиве путем итератора само слово находится в переменной stro=&quot;jkhjg&quot; Надо вывести m этого слова,...

Поиск и вствка слова в массиве - C++
Дано задание: Найти s1 в строке. Вставить s2 после найденного. Между ними вставить номер внесённого изменения. Не понимаю, как...

Поиск слова в массиве символов (строке) - C++
Вроде правильно все а не работает. В чем причина? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;Windows.h&gt; ...

Поиск слова в массиве символов char - C++
Получаю массив символов типа char из com port. есть ли способ поиска в этом массиве необходимого слова кроме как побайтово копировать ...

как осуществить в строковом массиве поиск именно слова(!), а не..... - C++
как осуществить в строковом массиве поиск именно слова(!), а не части слова. Допустим, есть строка: &quot;this is horosho&quot; Если я использую...

Расположить слова в массиве символов в алфавитном порядке по первой букве слова - C++
Введите массив символов из 14 элементов. Расположить слова в алфавитном порядке по первой букве слова. Добавлено через 19 часов 40...

3
eji
119 / 119 / 6
Регистрация: 17.09.2010
Сообщений: 288
06.04.2012, 20:16 #2
colding54, Измени на:
C++
1
2
3
4
5
if(strcmp(slovo,mass[i])==0)
     {
      printf("\n indeks  %d",i);
      return 0;
     }
А после цикла напиши:
C++
1
printf("Слово не найдено");
2
colding54
Заблокирован
06.04.2012, 20:40  [ТС] #3
Задача решена! Спасибо, eji.
0
juliandc
0 / 0 / 0
Регистрация: 21.10.2012
Сообщений: 35
05.11.2015, 09:44 #4
использую такую же конструкцию для поиска команды в буфере.... ничего не выходит
буфер работает, данные приходят, записываются в прерывании....
C++
1
2
3
4
5
6
7
8
9
10
11
const char* command_open="X";   // Искомое слово в массиве
 
for(int i=0;i<BUFSIZERX;i++) // перебираем буфер
    {   
        if(strcmp(command_open,bufRX[i])==0)
        {
         message_send(message_check);  // отдельно отправка сообщения работает.
         break;
        }
    }
        clear_bufRX(); // Очищаем буфер (заполняет буфер нулями)
0
05.11.2015, 09:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2015, 09:44
Привет! Вот еще темы с ответами:

В заданном символьном массиве найти слова, в которых первая буква слова встречается в нём ещё 1 раз - C++
Дан символьный массив. Вывести на печать те слова, в которых первая буква слова встречается в нём ещё 1 раз. гуглил, искал, нету подобной...

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

Убрать ненужные слова в массиве! - C++
Приветсвую всех! Такая задача имеется массив: char str - который содержит в себе следующие строки: На входе: qwerty asdfg zxcvn...

Поиск слова - C++
Суть вот в чем: Есть txt файл и нужно найти сколько раз и в каких строках встречается введенное пользователем слово, причем...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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