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

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

Восстановить пароль Регистрация
 
Hunter9494
 Аватар для Hunter9494
21 / 18 / 3
Регистрация: 29.10.2012
Сообщений: 154
20.04.2014, 19:54     Поиск слово с максимальной длиной которое начинается на определенную букву #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++
C++ Строки: вывести определенную букву или слово и их количество
Даны два слова.Верно ли,что первое слово начинается на ту же букву,на которую заканчивается второе слово (работа с символами строки) C++
C++ Дана строка символов, состоящая из цифр и пробелов. Вывести на экран слово с максимальной длиной
Даны два слова.Верно ли, что первое слово начинается на ту же букву, на которую заканчивается второе слово C++
C++ Определить, содержит ли последнее слово строки букву, с которой начинается первое слово
Выделить из строки слово, которое начинается с гласной, и заканчивается на согласную букву C++
C++ Дано слово. Верно ли, что оно начинается и заканчивается на одну и ту же букву

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
 Аватар для cooller
564 / 532 / 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;
}
Yandex
Объявления
20.04.2014, 20:18     Поиск слово с максимальной длиной которое начинается на определенную букву
Ответ Создать тему
Опции темы

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