Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 45

Вывести слова строки

02.12.2011, 18:31. Показов 1452. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно вывести слова из строки
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
 
int main(){
  char s[100] = " Every . solution , breeds ! new ? problems / ";
  char simb[10] = " .,!?/";
  int simb_begin = 0;
  int k = 0;
  for ( unsigned int i=0; i<strlen(s); i++ ){
      for ( unsigned int j = 0; i<strlen(simb); j++){
      if ( s[i] != simb[j] && s[i-1] == simb[0] ){ 
        simb_begin = k; 
      }
      }
    if ( s[i] == simb[0] && simb_begin > 0 ){ 
      for ( int j=simb_begin; j<k; j++ ){
        cout << s[j];
      }
      cout << endl;
      simb_begin = 0;
    }
    k++;
  
  }
  getch();
  return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.12.2011, 18:31
Ответы с готовыми решениями:

Строки: вывести слова с наименьшим количеством букв; удалить слова, начинающиеся с маленькой буквы
Здравствуйте. Помогите, пожалуйста сделать программу... Задание: Составить программу, которая выводит на экран слова с наименьшим...

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

Строки, вывести слова в обратном порядке
Подскажите,как вывести слова в обратном порядке? Вот код, что нужно исправить { char str1; char str2=&quot;, &quot;; ...

8
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
02.12.2011, 18:48
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Можно же проще:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cctype>
 
int main() {
   const char *s = " Every . solution , breeds ! new ? problems / ";
 
   bool endline = true;   
   for (int i = 0; s[i]; ++i) {  
      if (isalpha(s[i])) {
         std::cout << s[i];
         endline = true;
      }
      else if (endline) {
         std::cout << std::endl;
         endline = false;
      }
   }
}
А правильнее это, наверное, делать через stringstream или boost tokenizer
1
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 45
02.12.2011, 18:51  [ТС]
мне просто нужно чтобы было с использованием самых простых, пусть и громоздких, конструкций.я все-таки первый курс((

Добавлено через 1 минуту
по условию нужно использовать библиотеку из вот 5 символов и пробела
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
02.12.2011, 19:10
Цитата Сообщение от Nevado4ka Посмотреть сообщение
по условию нужно использовать библиотеку из вот 5 символов и пробела
Замени isalpha на проверку вхождения символа в массив simb, а всё остальное как в посте №2.
1
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 45
05.12.2011, 18:28  [ТС]
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
#include <cctype>
 
int main() 
{
   char s[100] = " Every . solution , breeds ! new ? problems / ";
   char simb[10] = " .,!?";
 
   bool endline = true;   
   for (int i = 0; s[i]; ++i)
   {  
       for (int j = 1; j < 4; j++)
       {
           if (s[i] = simb [j]) 
           {
               cout << s[i];
               endline = true;
           }
           else if (endline)
           {
               cout << endl;
               endline = false;
           }
       }
   }
   getch();
}
что я тут не так сделала?
он выводит странные символы((
кажется я совсем дуб(((
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
06.12.2011, 06:15
Цитата Сообщение от Nevado4ka Посмотреть сообщение
for (int j = 1; j < 4; j++)
При этом в simb у тебя ПЯТЬ символов. И индексация с нуля в С++ начинается.

Цитата Сообщение от Nevado4ka Посмотреть сообщение
if (s[i] = simb [j])
Это присваивание, а не сравнение
1
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 45
06.12.2011, 09:45  [ТС]
Вот что выходит
Миниатюры
Вывести слова строки  
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
06.12.2011, 11:52
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Nevado4ka, сказали же с нуля.
C++
1
for (int j = 0; j < 5; ++j)
И вообще логика измениться должна:
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
#include <iostream>
 
using namespace std;
 
int main() 
{
   char s[100] = " Every . solution , breeds ! new ? problems / ";
   char simb[10] = " .,!?/";
 
   bool endline = true; 
   for (int i = 0; s[i]; ++i)
   {  
           bool found = false;  
           for (int j = 0; j < 6 && !found; j++)
           {
              if (s[i] == simb[j])
                 found = true;
           }
           
           if (!found) 
           {
                   cout << s[i];
                   endline = true;
           }
           else if (endline)
           {
                   cout << endl;
                   endline = false;
           }
   }
}
1
Фрилансер
Эксперт С++
 Аватар для Dekio
5845 / 1226 / 499
Регистрация: 23.11.2010
Сообщений: 3,373
Записей в блоге: 1
06.12.2011, 12:34
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

stringstream
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
#include <sstream>
 
const std::string delims = " .,!?/";
 
int main()
{
    std::string Str = " Every . solution , breeds ! new ? problems / ";
    std::istringstream ist(Str);
    while(ist>>Str)
        if(Str.find_first_of(delims) == std::string::npos)
            std::cout<<Str<<std::endl;
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.12.2011, 12:34
Помогаю со студенческими работами здесь

Строки. Вывести совпадающие в текстах слова
Заданы два текста. Вывести совпадающие в этих текстах слова. Помогите пожалуйста, не знаю с чего начать.

Вывести слова строки в обратном порядке
Здравствуйте. Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова,...

Вывести слова строки в алфавитном порядке
Создать программу, которая из произвольного строки, содержащий некоторый текст, выделяет все слова и печатает их в алфавитном порядке (по...

Вывести все слова строки в порядке убывания
Помогите пожалуйста: Дана строка текста, в которой слова разделены пробелами. Необходимо: определить количество слов в строке, ...

Вывести слова строки, содержащие не более 4 букв
Здравствуйте. Задание: Вписать строку в консоль. Вывести слова этой строки, состоящие не более чем из 4 букв. Пример входных...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru