Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

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

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

Удалить строки динамической матрицы, начиная со строки К1 и до строки К2 - C++
Сформировать динамический двумерный массив, заполнить его случайными числами и удалить строки, начиная со строки К1 и до строки К2 вот...

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней - C++
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка...

Упорядочить символы строки B в алфавитном порядке и удалить латинские буквы из строки A - C++
"Даны строки A и B. Если в A есть латинские буквы, а в B нет повторяющихся символов, то упорядочить символы B в алфавитном порядке и...

Как считать строки из файла, если там больше одной строки? - C++
Как считать строки из файла в массив. Если в файле одна строка, то нет проблем, но если несколько, то при использовании функции fgets ...

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

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

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

Добавлено через 2 минуты
если всё не можешь хоть часть, а то я вообще далёк от этого, а сдавать завтра
0
asics
Freelance
Эксперт С++
2848 / 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;
}
1
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
16.12.2010, 20:41  [ТС] #11
Пресвятая мать заступница)))))) работает)) если бы можно было нажать 100500 раз кнопку спасибо))) я очень благодарен)) а можно маленькую экскурсию по коду? препод всё таки спрашивать будит)
0
asics
Freelance
Эксперт С++
2848 / 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;
}
1
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
16.12.2010, 21:09  [ТС] #13
я наверно ифом напишу он роднее))

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

Найти среднее арифметическое каждой строки матрицы и отсортировать строки по возрастанию - C++
Дана квадратная матрица. Найти среднее арифметическое каждой строки и отсортировать строки по возрастанию этих характеристик

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

Прибавить ко всем элементам каждой строки максимальное значение этой строки - C++
добрый вечер! Помогите пожалуйста доработать код! Изменить текущий массив, прибавив ко всем элементам каждой строки максимальное...

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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