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

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

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

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

06.04.2012, 20:04. Просмотров 3707. Ответов 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 !
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2012, 20:04     Поиск слова в массиве
Посмотрите здесь:

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
eji
118 / 118 / 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("Слово не найдено");
colding54
Заблокирован
06.04.2012, 20:40  [ТС]     Поиск слова в массиве #3
Задача решена! Спасибо, eji.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2015, 09:44     Поиск слова в массиве
Еще ссылки по теме:

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

Поиск слова - C++
добрый вече программист подскажите алгоритм поиска слова в текстовом файле начинающиеся и заканчивающиеся заданной буквой и сохранить...

поиск слова - C++
подскажите пожалуйста как организовать поиск слов в файле .txt Добавлено через 13 часов 25 минут ну подскажите пожалуйста... очень...

поиск слова - C++
есть 2 массива чаров. первый - текст, второй - слово.как с помощью ф-ий библиотеки cstring или иной произвести поиск слова в тексте. Если...

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

Поиск слова - C++
Дан текст на русском языке. Выяснить, входит ли данное слово в указанный текст, и если да, то сколько раз. пожалуйста..) на Borland...


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

Или воспользуйтесь поиском по форуму:
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(); // Очищаем буфер (заполняет буфер нулями)
Yandex
Объявления
05.11.2015, 09:44     Поиск слова в массиве
Ответ Создать тему
Опции темы

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