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

Найти слово "ТЕКСТ", если такое слово есть,то отпечатать его номер в строке. - C++

Восстановить пароль Регистрация
 
MaDiNa
 Аватар для MaDiNa
3 / 2 / 1
Регистрация: 02.04.2012
Сообщений: 107
15.04.2012, 20:41     Найти слово "ТЕКСТ", если такое слово есть,то отпечатать его номер в строке. #1
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). Найти слово "ТЕКСТ", если такое слово есть, то отпечатать его номер в строке. Если такого слова нет, то сообщить об этом.
у меня есть код но его надо переделать в визуальный!Помогите с переделкой!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 char str[80];
 int i,  b=0;
 char *c;
 cout<<"Vvedite stroku:\n";
 gets(str);
 c = strchr(str, 'TEXT');
 if (c==0) {
   cout<<"\n Takoi stroki net";
 }
for (i = 0; str[i]!=*c; i++) {
  if (str[i]==' ') b++;
 
}
cout<<"\n\nNomer pos: "<<b+1;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2012, 20:41     Найти слово "ТЕКСТ", если такое слово есть,то отпечатать его номер в строке.
Посмотрите здесь:

C++ Скопировать содержимое текстового файла, удалив в каждой строке слово номер N+1, если в слове N есть 4
Найти сколько раз в строке из 16 символов встречается слово "she" C++
C++ вывести на друк слово "Одинаковые" если эти массивы полностью совпадают,и слово "Разные" в противоположном случае.
В каждой второй строке удалить третье слово, если такое есть C++
C++ Дана строка, в котором есть слово "да" или слово "нет". Если в нем есть слово "нет", то удалить его
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Buckstabue
 Аватар для Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
15.04.2012, 21:58     Найти слово "ТЕКСТ", если такое слово есть,то отпечатать его номер в строке. #2
Я бы решил задачу примерно так
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
#include <iostream>
#include <cstring>
 
int main()
{
   const int STR_SIZE = 80;
   char str[ STR_SIZE ] = { '\0' }; // вводимая строка
   char strForSearch[ STR_SIZE ] = { '\0' }; // копия строки для поиска
   char *curWordPtr = NULL; // текущее слово
   const char *wordPtr = "TEXT"; // искомое слово
   bool hasWord = false; // флаг наличия в строке слова *word
   int counter = 0; // счетчик слов
 
   std::cout << "Vvedite stroku: " << std::endl;
   std::cin.getline( str, STR_SIZE );
 
   strcpy( strForSearch, str );
   curWordPtr = strtok( strForSearch, " " );
   while ( curWordPtr != NULL )
   {
      counter++;
      if ( strcmp( curWordPtr, wordPtr ) == 0 )
      {
         hasWord = true;
         break;
      }
      curWordPtr = strtok( NULL, " " );
   }
 
   if ( hasWord )
      std::cout << counter << std::endl;
   else
      std::cout << "Slovo ne naydeno" << std::endl;
 
   return 0;
}
MaDiNa
 Аватар для MaDiNa
3 / 2 / 1
Регистрация: 02.04.2012
Сообщений: 107
15.04.2012, 22:05  [ТС]     Найти слово "ТЕКСТ", если такое слово есть,то отпечатать его номер в строке. #3
Цитата Сообщение от Buckstabue Посмотреть сообщение
Я бы решил задачу примерно так
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
#include <iostream>
#include <cstring>
 
int main()
{
   const int STR_SIZE = 80;
   char str[ STR_SIZE ] = { '\0' }; // вводимая строка
   char strForSearch[ STR_SIZE ] = { '\0' }; // копия строки для поиска
   char *curWordPtr = NULL; // текущее слово
   const char *wordPtr = "TEXT"; // искомое слово
   bool hasWord = false; // флаг наличия в строке слова *word
   int counter = 0; // счетчик слов
 
   std::cout << "Vvedite stroku: " << std::endl;
   std::cin.getline( str, STR_SIZE );
 
   strcpy( strForSearch, str );
   curWordPtr = strtok( strForSearch, " " );
   while ( curWordPtr != NULL )
   {
      counter++;
      if ( strcmp( curWordPtr, wordPtr ) == 0 )
      {
         hasWord = true;
         break;
      }
      curWordPtr = strtok( NULL, " " );
   }
 
   if ( hasWord )
      std::cout << counter << std::endl;
   else
      std::cout << "Slovo ne naydeno" << std::endl;
 
   return 0;
}
Спасибо! но мне надо в визуальном!
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
15.04.2012, 22:11     Найти слово "ТЕКСТ", если такое слово есть,то отпечатать его номер в строке. #4
Цитата Сообщение от MaDiNa Посмотреть сообщение
Спасибо! но мне надо в визуальном!
что в вашем понятии визуальное? GUI чтоль? GUI можно самой прикрутить
MaDiNa
 Аватар для MaDiNa
3 / 2 / 1
Регистрация: 02.04.2012
Сообщений: 107
15.04.2012, 22:14  [ТС]     Найти слово "ТЕКСТ", если такое слово есть,то отпечатать его номер в строке. #5
Цитата Сообщение от panicwassano Посмотреть сообщение
что в вашем понятии визуальное? GUI чтоль? GUI можно самой прикрутить
C++ Builder----> объектно-ориентированное программирование!
с помощю Edit, Button,Memo и тому подобное!
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
15.04.2012, 22:15     Найти слово "ТЕКСТ", если такое слово есть,то отпечатать его номер в строке. #6
Цитата Сообщение от MaDiNa Посмотреть сообщение
C++ Builder----> объектно-ориентированное программирование!
с помощю Edit, Button,Memo и тому подобное!
это вы можете сами прикрутить, вывод сделаете в memo, документацию почитаете по билдеру как это делается. Решение задачи у вас есть
MaDiNa
 Аватар для MaDiNa
3 / 2 / 1
Регистрация: 02.04.2012
Сообщений: 107
15.04.2012, 22:17  [ТС]     Найти слово "ТЕКСТ", если такое слово есть,то отпечатать его номер в строке. #7
Цитата Сообщение от panicwassano Посмотреть сообщение
это вы можете сами прикрутить, вывод сделаете в memo, документацию почитаете по билдеру как это делается. Решение задачи у вас есть
Мне нужно чтобы строка вводилась, а не задавалась! Так вод я делаю только вот Edit не принимает char, есть какие способы преобразования char в string и обратно?
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
15.04.2012, 22:44     Найти слово "ТЕКСТ", если такое слово есть,то отпечатать его номер в строке. #8
Цитата Сообщение от MaDiNa Посмотреть сообщение
Мне нужно чтобы строка вводилась, а не задавалась! Так вод я делаю только вот Edit не принимает char, есть какие способы преобразования char в string и обратно?
у стринг есть методов find, который и возвращает позицию в строке
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2012, 00:07     Найти слово "ТЕКСТ", если такое слово есть,то отпечатать его номер в строке.
Еще ссылки по теме:

Найти в строке слово, начинающееся буквой "а" и оканчивающееся буквой "я" C++
В заданной строке найти последнее слово и его номер C++
Найти книги, изданные после 1990 года, в названии которых есть слово "информатика" C++

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

Или воспользуйтесь поиском по форуму:
Sergey-K
 Аватар для Sergey-K
233 / 224 / 13
Регистрация: 27.10.2011
Сообщений: 249
16.04.2012, 00:07     Найти слово "ТЕКСТ", если такое слово есть,то отпечатать его номер в строке. #9
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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  AnsiString temp, str = Edit1->Text + " ";
  int count = 0;
  bool b = false;
  for(int i = 0; i < str.Length(); i++)
    {
      if(str[i + 1] != ' ')
        temp += str[i + 1];
      else
        {
          if(temp != "")
            {
              count++;
              if(temp == "ТЕКСТ")
                {
                  b = true;
                  break;
                }
              temp = "";
            }
        }
    }
  if(b)
    ShowMessage("Слово \"ТЕКСТ\" присутствует в строке под номером: " +
      IntToStr(count));
  else
    ShowMessage("Слово \"ТЕКСТ\" не найдено");
}
Yandex
Объявления
16.04.2012, 00:07     Найти слово "ТЕКСТ", если такое слово есть,то отпечатать его номер в строке.
Ответ Создать тему
Опции темы

Текущее время: 21:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru