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

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

Войти
Регистрация
Восстановить пароль
 
Assign_me_plz
5 / 5 / 0
Регистрация: 05.06.2011
Сообщений: 40
#1

Работа со строками, алгоритм есть. - C++

15.01.2012, 19:02. Просмотров 679. Ответов 6
Метки нет (Все метки)

Задача сводится к тому, что необходимо проверить вхождение в строку определенного набора символов (далее "маска").
Алгоритм реализации прост как моя жизнь, но не хватает знаний. Знатоки С\С++ помогите!
Алгоритм заключаться в том, чтобы проверять по символьно, т.е. берем 1 символ маски, ищем его в строке, после нахождения берем второй и сравниваем со следующим символом строки, и т.д. пока маска не закончится. После выполнения фиксируем последний елемент строки, который подошел к маске, и с него продолжаем поиск, парралельно сделав +1 на счетчике.
Если можете, реализуйте, помогите.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2012, 19:02     Работа со строками, алгоритм есть.
Посмотрите здесь:

Работа со строками С++ - C++
Задача вот с таким условием: В строке все вхождения подстроки str1 заменить подстрокой str2. Str2 вводится с клавиатуры. Помогите найти...

Работа со строками в c++ - C++
Всем доброго времени суток! Помогите пожалуйста в решении проблемы: не могу(не знаю) как работать с текстовым файлом. У меня задача при...

Работа со строками - C++
Всем привет. Есть такой код void makeStr() { std::string testStr = "Take String"; char *ch_arr =...

Работа с строками - C++
И так дано StrCChar (s, c1, s2, n) надо заменить все символы c1 в строке s, начиная с позиции n, на строку s2. Надо на с++ и желательно...

Работа со строками - C++
Не могу написать правильно работающую программу для условия: Написать программу, которая к каждому слову в тексте добавляет сочетание...

Работа со строками - C++
Дан набор слов, разделенных точкой с запятой ";". Набор заканчивается двоеточием ":". Определить, сколько в нем слов, заканчивающихся...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
15.01.2012, 19:08     Работа со строками, алгоритм есть. #2
Цитата Сообщение от Assign_me_plz Посмотреть сообщение
Знатоки С\С++
std::string::find
Assign_me_plz
5 / 5 / 0
Регистрация: 05.06.2011
Сообщений: 40
15.01.2012, 19:16  [ТС]     Работа со строками, алгоритм есть. #3
Полный код, если вам не сложно.
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
15.01.2012, 19:18     Работа со строками, алгоритм есть. #4
Цитата Сообщение от Assign_me_plz Посмотреть сообщение
С\С++
Не понял ничего практически, но смутно догадываюсь, что что-то из
strstr()
strchr()
strpbrk()
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
15.01.2012, 19:21     Работа со строками, алгоритм есть. #5
Assign_me_plz,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
 
int main()
{
    std::string str1, str2;
    
    std::cout << "Enter string 1: ";
    std::getline(std::cin, str1);
    std::cout << "Enter string 2: ";
    std::getline(std::cin, str2);
    
    std::cout << "String 1 is "
              << (str1.find(str2) != std::string::npos ? "" : "not ")
              << "contains string 2" << std::endl;
        
    
    return 0;
}
megastriker
49 / 49 / 18
Регистрация: 05.12.2010
Сообщений: 261
15.01.2012, 21:36     Работа со строками, алгоритм есть. #6
подойдет функция strstr(char *s1, char *s2) из <string.h>, которая проверяет, есть ли подстрока s2 в s1.

ну а если ею пользоваться нельзя, то можно написать функцию сравнения, где поочередно берутся по элементу из маски и строки и сравниваются.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2012, 01:25     Работа со строками, алгоритм есть.
Еще ссылки по теме:

Работа со строками - C++
Вставить после вхождения строки str подстроку str1. Попытался сам сделать, но дальше этого работа не идёт. Нужна помощь. #include...

Работа со строками - C++
Товарищи, такая вот проблема. Есть задача. Прочитать строки из файла, а потом записать их следующим образом. Первую оставить, вторую...

Работа со строками - C++
Люди, если есть у кого время прошу просветить на тему Работу со строками ! Начили изучать, а примеров никаких нет ! И надо решить четыре...

Работа со строками - C++
char *B = new char ; cout &lt;&lt; &quot;Введите текст произвольной длины: &quot; ; cin.getline( B, 50); cout &lt;&lt; &quot;Введенный текст: &quot; &lt;&lt; B; ...


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

Или воспользуйтесь поиском по форуму:
Assign_me_plz
5 / 5 / 0
Регистрация: 05.06.2011
Сообщений: 40
16.01.2012, 01:25  [ТС]     Работа со строками, алгоритм есть. #7
Черт, ребята, перепутал, мне надо посчитать все то что я раньше написал + исходную строку заменить на ( в начале написать *наша маска*(*кол-во повторений*)*вся остальная строка без нашей маски*).

Добавлено через 1 час 24 минуты
Собственно прогу написал, без финальной части ( удаление масок из строки и т.д.)
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
32
#include<string.h>
#include<conio.h>
#include<stdio.h>
 
int main()
{
    char row[256],mask[256],aftermask[256];;
    int i,n;
    
    printf("Enter row:\n");
    scanf("%s",row);
    printf("Enter mask :\n");
    scanf("%s",mask);
  n=0;
 int t=strlen(mask);
  for ( i = 0;  i<=(strlen(row)); i++)
{
        if (row[i]==mask[0])
{
  for (int k = 1; k<=(strlen(mask)); k++)
 {
 if (row[i+k]!=mask[k])break;
 if (k==(t-1)) (n=n+1);
 }
}
}
printf("%i",n);
printf("\t < count of mask incoming in our string");
 
getch();
    return (0);
}
Yandex
Объявления
16.01.2012, 01:25     Работа со строками, алгоритм есть.
Ответ Создать тему
Опции темы

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