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

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

Войти
Регистрация
Восстановить пароль
 
Hunter9494
21 / 18 / 3
Регистрация: 29.10.2012
Сообщений: 154
#1

Поиск слово с максимальной длиной которое начинается на определенную букву - C++

20.04.2014, 19:54. Просмотров 321. Ответов 1
Метки нет (Все метки)

Я нашел код который ищет слова с макс. длиной :
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
43
44
45
46
47
48
//
 
#include "stdafx.h"
#include "iostream"
#include "string"
 
#include <cstring>
using namespace std;
 
int main()
{
 setlocale(LC_ALL,"Rus");
    char string[200];
 int n=1;
    cout << "Введите строку:\n";
    cin.getline(string,200);
 
    char * pch = strtok (string," ,.-"),  // получаем первое слово
         * word = 0; // самое длинное слово
 
    int length = strlen(pch);          // определяем длинну первого слова
 
    int maxLen = 0; // самое длинное слово
 
      while (pch != NULL)                         // пока есть слова
      {
          length = strlen(pch);        // определяем длинну слова
          
          if (maxLen < length )        // определяем самое длинное слово
          {
              maxLen = length;
              word = pch;// сохраняем указатель на текущее слово
              n=1;
          }
          else if (maxLen==length)
              n++;
          
          pch = strtok (NULL, " ,.-"); // получаем следующее слово
      }
 if(n>=2)
     cout<<"Такого слово нет"<<endl;
 else
      cout << "Самое длинное слово: " << word
           << " , его длина равна: " << maxLen
           << " символам " << endl;
 system("pause");
    return 0;
}
а как найти слово которое начинается на определенную букву ?
хотел использовать функцию strncmp
вот здесь:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
      while (pch != NULL)                         // пока есть слова
      {
          length = strlen(pch);        // определяем длинну слова
          if(strncmp(pch,k,1)==0)
          if (maxLen < length )        // определяем самое длинное слово
          {
              maxLen = length;
              word = pch;// сохраняем указатель на текущее слово
              n=1;
          }
          else if (maxLen==length)
              n++;
          
          pch = strtok (NULL, " ,.-"); // получаем следующее слово
      }
но компилятор ругается
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2014, 19:54     Поиск слово с максимальной длиной которое начинается на определенную букву
Посмотрите здесь:

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

Слово которое начинается и заканчивается на одну и ту же букву - C++
Вводится буква, вводится слово и если в этом слове первая и последняя буква соответствует заданной - True иначе false

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

Поиск слова которое начинается и заканчивается на одну букву - C++
Дана строка. Найти в ней те слова, которые начинаются и оканчиваются одной и той же буквой. Язык С++

Верно ли, что первое слово начинается на ту же букву, на которую заканчивается второе слово? - C++
Даны два слова. Верно ли, что первое слово начинается на ту же букву, на которую заканчивается второе слово?

Даны два слова.Верно ли, что первое слово начинается на ту же букву, на которую заканчивается второе слово - C++
Даны два слова.Верно ли, что первое слово начинается на ту же букву, на которую заканчивается второе слово.

Вывод слова из строки, которое начинается и заканчивается на одну и ту же букву - C++
для заданной строки вывести на экран слова, которые начинаются и заканчиваются на одну и ту же букву сделайте без printf, а с cout и...

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

Дана строка символов, состоящая из цифр и пробелов. Вывести на экран слово с максимальной длиной - C++
Помогите, выдает ошибку в проверке условия цикла #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() { ...

Дано слово. Верно ли, что оно начинается и заканчивается на одну и ту же букву - C++
Дано слово. Верно ли, что оно начинается и заканчивается на одну и ту же букву.( работа с символами строки)

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

Найти самое короткое слово в строке, которое заканчивается на букву «а» - C++
Помогите с написанием алгоритма. Заранее благодарен. Дана строка текста, в которой слова разделены пробелами и запятыми. Необходимо: ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
20.04.2014, 20:18     Поиск слово с максимальной длиной которое начинается на определенную букву #2
Цитата Сообщение от Hunter9494 Посмотреть сообщение
Поиск слово с максимальной длиной которое начинается на определенную букву
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 <string>
#include<vector>
#include<algorithm>
#include<sstream>
int main()
{
    std::string str;
    std::getline(std::cin,str);
    char letter('A');
    std::vector <std::string> svec;
    std::stringstream s(str);
    for(std::string word; s>>word;)
        if(word[0] == letter)
            svec.push_back(word);
    if(svec.empty())
    {
        std::cout<<"No words!";
        return 0;
    }
    std::cout<<"\n"<<*std::max_element(svec.begin(),svec.end(),[] (std::string first,std::string second)
    {
        return first.length() < second.length() ;
    });
 
    return 0;
}
Ответ Создать тему
Опции темы

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