С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
7 / 7 / 1
Регистрация: 07.05.2013
Сообщений: 136
1

Ищем слово в строке

09.05.2013, 12:39. Показов 1153. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Перерыв интернет, нашел 2 функции, которые ищут подтсроку.
Первая - это strstr, вторая - это метод - find
Начал использовать find, но нашел некоторую особенность. Она ищет вхождения в строке. Т.е., если у нас есть в строке test tet et, и если мне нужно найти слово et, она даст мне 2 варианта: tet и et. Есть ли какая-нибудь функция, которая четко будет искать введенное слово?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.05.2013, 12:39
Ответы с готовыми решениями:

Ввести строку и слово. Вставить введенное слово за пятым словом в строке
Помогите ребят. Нужно написать программу на С++ без использования библиотек <ctype.h>, <string.h>...

Ввести строку и слово. Вставить введенное слово за самым коротким словом в строке.
помогите

Вывести самое большое слово в строке (если это первое слово - оно не выводится)
Приветствую всех! Задача вывести самое большое слово в строке. Проблема в том что если самое...

Найти слово "ТЕКСТ", если такое слово есть,то отпечатать его номер в строке.
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним...

9
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
09.05.2013, 12:56 2
FacelessShadow, что значит даст Вам два варианта? Функция std::string::find ищет первое вхождение подстроки в строке и возвращает номер этого элемента?как она может вернуть два значения?

Добавлено через 5 минут
Кроме всего прочего, strstr и std::string::find делают одно и то же.

Добавлено через 16 секунд
Просто с разными аргументами
0
7 / 7 / 1
Регистрация: 07.05.2013
Сообщений: 136
09.05.2013, 12:57  [ТС] 3
metaluga145, да, все верно. Про 2 варианта это я ошибся. У меня просто особенность в коде такая. Но дела это не меняет. Если в строке будут слова test и test1, то при попытке найти test1, она найдет мне test.
0
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
09.05.2013, 13:04 4
FacelessShadow, не найдет. Чего это она должна его найти?

Добавлено через 3 минуты
вот если у Вас будет строка "test1 test fdkjshfkjh' и Вы попробуете найти 'test', то да. оно сначала найдет 'test1'
0
7 / 7 / 1
Регистрация: 07.05.2013
Сообщений: 136
09.05.2013, 13:10  [ТС] 5
metaluga145, да, все верно, снова ошибся. Может быть есть какая-то еще функция? Или придется самому писать?
0
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
09.05.2013, 13:12 6
FacelessShadow, Вам надо найти конкретное слово в строке?
0
7 / 7 / 1
Регистрация: 07.05.2013
Сообщений: 136
09.05.2013, 13:27  [ТС] 7
metaluga145, Да. Чтобы не первое вхождение символов искал, а само слово
0
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
09.05.2013, 13:30 8
FacelessShadow, тогда надо написать этот же поиск, но проверить,чтобы элементы слева и справа были разделителями слов
0
7 / 7 / 1
Регистрация: 07.05.2013
Сообщений: 136
09.05.2013, 13:36  [ТС] 9
Спасибо! Попробую
0
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
09.05.2013, 15:41 10
FacelessShadow, если понадобится, вот функция, которая ищет и выводит все слова в строке. Нужно лишь добавить свои разделители.
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
#include <iostream>
#include <string>
std::string tokens(const std::string str, const char* tokens = " ,?!:") // tokens - разделители
    {
        size_t beginPos = 0, nextPos = 0;
        std::string word;
        if ((beginPos = str.find_first_of(tokens)) != 0)
        {
            word = str.substr(0, beginPos); // в word содержится текущее слово
             std::cout << word << '\n';
        }
        while((beginPos = str.find_first_of(tokens, nextPos)) != std::string::npos)
        {
            if ((nextPos = str.find_first_of(tokens, beginPos + 1)) == std::string::npos)
                nextPos = str.size();
            if ((nextPos - beginPos) > 1)
            {
                word = str.substr(beginPos + 1, nextPos - (beginPos + 1));
                std::cout << word << '\n';
            }
        } 
        return "true"; 
    }
int main()
{
    tokens(" KSC.sc.sc.m .sdcd ");
    return 0;
}
1
09.05.2013, 15:41
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.05.2013, 15:41
Помогаю со студенческими работами здесь

Максимальное слово в строке
Всем привет! Не получается вывести максимальное слово в строке. Функцию strtok использовать нельзя!...

Найти слово в строке
Можно с помощью функции find() это сделать?

Получить N-ое слово в строке
как получить N-ое слово в строке прототип такой char* word(char* src,int i)

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru