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

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

Войти
Регистрация
Восстановить пароль
 
 
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
#1

С++ Строки - C++

16.12.2010, 19:31. Просмотров 1131. Ответов 16
Метки нет (Все метки)

Помогите разобраться как в С++ можно в заданной строке найди заданное слово. То есть мне нужно знать есть ли конкретное слово в предложении, но и то и другое должно быть введено с клавиатуры.

Добавлено через 31 минуту
Помогите пожалуйста на завтра надо!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2010, 19:31     С++ Строки
Посмотрите здесь:

Ввести строки и через n символов первой строки вставить вторую строку, и так до конца строки - C++ Builder
Помогите исправить баг задача состоит в следующем :ввести строку и простроку тоесть две строки и надо через (n) символов первой строки...

Даны три строки. Определить можно ли из символов третьей строки получить первую и вторую строки - Java
Помогите пожалуйста! 1)Даны три строки. Определить можно ли из символов третьей строки получить первую и вторую строки. 2)Дана...

Сравнить строки, первый несовпадающий элемент строки-приемника записать в регистр AL, строки-источника - в DL - Assembler
Помогите написать программу на ассемблерене совсем еще разобрался с этим задание: Ввести с клавиатуры две строки одноразрядных...

Слить две строки, вставив символы одной строки между символами другой строки - Pascal
Строка a из n символов лексикографически меньше строки b из n символов, если существует такой индекс j, что aj < bj, а для всех i < j ai =...

Определить длину строки. Если длина строки >6, удалить часть строки в { } скобках. - Turbo Pascal
Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши "Ввод". Программа должна определить длину введенной...

Строки. Определить длину введенной строки, если длина кратна 4, то первая часть строки меняется местами со второй - Turbo Pascal
Ввести с клавиатуры строку символов.признак окончания ввода строки-нажатие клавиши ввод.Программа должна определить длину введенной строки...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
16.12.2010, 19:48     С++ Строки #2
C++
1
2
3
4
5
6
std::string str, word;
std::cin >> word;
std::cin >> str;
if (str.find(word) !=std::string::npos) {
    std::cout << "there is such word " << word << " in string " << str << '\n';
}
трудно было?
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
16.12.2010, 20:06  [ТС]     С++ Строки #3
У меня ругается на '<<'. Скопировал: error C2678: binary '>>' : no operator found which takes a left-hand operand of type 'std::istream' (or there is no acceptable conversion)

Добавлено через 3 минуты
уже сам исправил

Добавлено через 3 минуты
слово находит только в сплошной строке символов, а если это предложение с пробелами не работает
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
16.12.2010, 20:10     С++ Строки #4
Perfaratar, Это
C++
1
std::cin >> str;
замени на это
C++
1
getline(std::cin, str);
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
16.12.2010, 20:15  [ТС]     С++ Строки #5
Цитата Сообщение от asics Посмотреть сообщение
Perfaratar, Это
C++
1
std::cin >> str;
замени на это
C++
1
getline(std::cin, str);
не работает, ввод строки пропускает...

Добавлено через 1 минуту
такс исправил... сейчас ещё буду спрашивать
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
16.12.2010, 20:15     С++ Строки #6
Perfaratar, Покажы весь код которий компилиш.
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
16.12.2010, 20:20  [ТС]     С++ Строки #7
Я уже откомпилил. У меня такое хитрое задание, не хотел всё вылаживать думал, поспрашиваю и всё в кучу слеплю, но наверно не смогу Можно задание написать?)) поможешь?)
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
16.12.2010, 20:23     С++ Строки #8
Perfaratar, Ну давай, не я помогу - то кто-то другой поможэт.
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
16.12.2010, 20:30  [ТС]     С++ Строки #9
В общем пользователь вводит слово, потом предложение. Если в предложении есть слово, введённое раньше, то в ответе удвоить его.

Пример. Ввод слова: мама Ввод предложения: мама мыла раму, раму мыла мама
Ответ: мамамама мыла раму, раму мыла мамамама

Тут мне по-моему строка ещё одна нужна для ответа, но вот как в неё копировать содержимое первой и ещё слово вставлять не знаю. Или наверно можно работать с одной строкой только используя смещение, но я его тоже не знаю

Добавлено через 2 минуты
если всё не можешь хоть часть, а то я вообще далёк от этого, а сдавать завтра
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
16.12.2010, 20:33     С++ Строки #10
Perfaratar, Как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <sstream>
 
int main()
{
    std::string str, wrd;
    std::cout << "Input sentence: ";
    std::getline(std::cin, str);
    std::cout << "\nInput word: ";
    std::cin >> wrd;
 
    std::istringstream ist(str);
 
    std::cout << "\n-> ";
    while(ist >> str)
        std::cout << (str == wrd? str+str : str) << ' ';
 
    return 0;
}
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
16.12.2010, 20:41  [ТС]     С++ Строки #11
Пресвятая мать заступница)))))) работает)) если бы можно было нажать 100500 раз кнопку спасибо))) я очень благодарен)) а можно маленькую экскурсию по коду? препод всё таки спрашивать будит)
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
16.12.2010, 20:51     С++ Строки #12
Perfaratar,
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 <iostream>
#include <string>
#include <sstream>
 
int main()
{
    std::string str, wrd;
    std::cout << "Input sentence: ";
    std::getline(std::cin, str);
    std::cout << "\nInput word: ";
    std::cin >> wrd;
 
    std::istringstream ist(str);//Преврощяем строку в поток из которого можно читаь данные как из любого потока
 
    std::cout << "\n-> ";
    while(ist >> str)//разделяем строку на слова, разделителем служыт пробел 
        std::cout << (str == wrd? str+str : str) << ' ';//Если некое слово из строки равняеться нашему, 
                                                     //соеденяем ето слово само з собой и выводим на экран, иначе выводим просто слово.
                                                     //тернарный оператор используем для удобства, эту часть кода можно перепесать и через if(), вот так
    /*while(ist >> str)
    {
        if(str == wrd)
           std::cout << (str+str) << ' ';
        else
           std::cout << str << ' ';
    }*/
 
    return 0;
}
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
16.12.2010, 21:09  [ТС]     С++ Строки #13
я наверно ифом напишу он роднее))

Добавлено через 2 минуты
а поток вот этот так называемый, зачем мы его используем? мы из него по другому читаем данные? не как из строки?
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
16.12.2010, 21:12     С++ Строки #14
Цитата Сообщение от Perfaratar Посмотреть сообщение
а потом вот этот так называемый, зачем мы его используем? мы из него по другому читаем данные? не как из строки?
Про "это" читаем тут
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2010, 17:17     С++ Строки
Еще ссылки по теме:

Строки. Если в конце строки точка отсутствует, то найти слово, заканчивающееся точкой и перенести его в конец строки. - Pascal
Дана строка, состоящая из слов и содержащая одну точку в конце одного из слов. Если в конце строки точка отсутствует, то найти слово,...

Строки. Даны строка S и подстрока S1.Удалить из строки S все вхождения строки S1 - Turbo Pascal
Даны строка S и подстрока S1.Удалить из строки S все вхождения строки S1.В строке S подсчитать кол-во вхождений строки S1.

БД с операциями: добавление новой строки, удаление строки, редактирование имеющейся строки - PascalABC.NET
Нужно создать базу данных в паскале, с операциями: добавление новой строки, удаление строки, редактирование имеющей строки. Желательно с...

Строки. Даны строки S и So. Найти количество вхождений строки So в строку S - Turbo Pascal
Помогите пожалуйста, как сделать эту задачу без этих вот строчек... B:=TRUE; и без команды INC... Вот условие задачи: Даны строки S и...

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк - C++
Есть динамический массив строк. Заполняется, т.е. размер его уже известен будет. Но дальше нужно сделать задание: &quot;Добавить строки, начиная...


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

Или воспользуйтесь поиском по форуму:
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
17.12.2010, 17:17  [ТС]     С++ Строки #15
аааааа))) препод сказал ещё написать через массив символов))) пошел писать)))
Yandex
Объявления
17.12.2010, 17:17     С++ Строки
Ответ Создать тему
Опции темы

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