Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Строка в С ++ 
:(
    Опции темы
Merroy
Дата 16.12.2018, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 16.12.2018

Репутация: нет
Всего: нет



С клавиатуры вводиться текстовую строку. Разработать программу, которая выполняет:
a) количество слов, которые содержат одинаковое количество гласных и согласных букв;
б) выводит на экран самое длинное слово;
в) удаляет из текста слово-палиндромы;
PM MAIL   Вверх
kapbepucm
Дата 17.12.2018, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 993
Регистрация: 14.6.2007
Где: Латвия

Репутация: нет
Всего: 12



А какие символы пользователь вводит, на каком языке?


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Merroy
Дата 17.12.2018, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 16.12.2018

Репутация: нет
Всего: нет



kapbepucm, он вводит что за хочет, главное текстовая строка. 
PM MAIL   Вверх
kapbepucm
Дата 18.12.2018, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 993
Регистрация: 14.6.2007
Где: Латвия

Репутация: нет
Всего: 12



решение задачи "б"
Код
#include <iostream>

using namespace std;

int main()
{
  string s;
  string delimiter = " ";
  string longest_word = "";
  size_t pos;
  
  cout << "Enter your text and press [enter]: ";
  getline(cin, s);

  pos = s.find(delimiter);
  while (pos != std::string::npos)
  {
    string token;
    token = s.substr(0, pos);
    if (token.length() > longest_word.length())
      longest_word = token;
    s.erase(0, pos + delimiter.length());
    pos = s.find(delimiter);
  }
  if (s.length() > longest_word.length())
    longest_word = s;
  cout << "The longest word is: " << longest_word << endl;

  return 0;
}


Добавлено через 5 минут и 16 секунд
Цитата(Merroy @  17.12.2018,  20:57 Найти цитируемый пост)
он вводит что за хочет
нужно предусмотреть ввод для всех алфавитов мира? smile


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
_zorn_
Дата 18.12.2018, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: нет
Всего: 12



Цитата(Merroy @  17.12.2018,  20:57 Найти цитируемый пост)
он вводит что за хочет

Цитата
б) выводит на экран самое длинное слово;

Какое слово длиннее 名 или 字 ?  smile 
Про остальные пункты вообще молчу  smile 
PM MAIL   Вверх
kapbepucm
Дата 18.12.2018, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 993
Регистрация: 14.6.2007
Где: Латвия

Репутация: нет
Всего: 12



Цитата(_zorn_ @  18.12.2018,  14:35 Найти цитируемый пост)
Какое слово длиннее 名 или 字 ?
Вангую, что автор вопроса имел ввиду длину строки в какойто однобайтной кодировке  smile
решение б и в:
Код
#include <iostream>
using namespace std;

void set_longest(string* current_word, string* new_word)
{
  if (new_word->length() > current_word->length())
    *current_word = *new_word;
}

int is_palindrome(string* word)
{
  if (word->length() > 0)
  {
    size_t index1 = 0;
    size_t index2;
    index2 = word->length()-1;

    for(; index1 < index2; ++index1, --index2)
      if(word->at(index1) != word->at(index2))
        return 0;
  }
  return 1;
}

int main()
{
  string result = "";
  string s;
  string delimiter = " ";
  string longest_word = "";
  size_t pos;

  cout << "Enter your text and press [enter]: ";
  getline(cin, s);

  pos = s.find(delimiter);
  while (pos != std::string::npos)
  {
    string token;
    token = s.substr(0, pos);
    set_longest(&longest_word, &token);
    if (!is_palindrome(&token))
      result += token;
    result += delimiter;
    s.erase(0, pos + delimiter.length());
    pos = s.find(delimiter);
  }
  set_longest(&longest_word, &s);
  if (!is_palindrome(&s))
    result += s;

  cout << "The first longest word is: " << longest_word << endl;
  cout << "string w/o palindromes: " << result << endl;

  return 0;
}


Это сообщение отредактировал(а) kapbepucm - 18.12.2018, 15:52


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
_zorn_
Дата 18.12.2018, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: нет
Всего: 12



Цитата(kapbepucm @  18.12.2018,  22:51 Найти цитируемый пост)
однобайтной кодировке  smile

Проблема в том, что автору нужно просто "решение" и ему НАСРАТЬ на уточнение условий ) Такова жизнь обыно.
PM MAIL   Вверх
Merroy
Дата 18.12.2018, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 16.12.2018

Репутация: нет
Всего: нет



_zorn_, просто в теме этой я не разобрался, а завтра уже нужно сдать это задания, вот думаю на отдыхе поучить эту тему.

Добавлено через 5 минут и 18 секунд
kapbepucm, ну простите не написал что русского алфавита. 
PM MAIL   Вверх
kapbepucm
Дата 19.12.2018, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 993
Регистрация: 14.6.2007
Где: Латвия

Репутация: нет
Всего: 12



Цитата(Merroy @  18.12.2018,  21:15 Найти цитируемый пост)
русского алфавита
Это хуже, чем я предполагал, что будет только латиница smile Надо бы знать: какой компилятор используем, какую ОС (вангую: windows), в какой кодировке сохраняем исходник (вангую: Windows-1251), какую кодировку использует консоль (вангую: CP866).

Добавлено через 1 минуту и 21 секунду
Цитата(Merroy @  18.12.2018,  21:15 Найти цитируемый пост)
а завтра уже нужно сдать
да и, видимо, уже не актуально


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1417 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.