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

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

Войти
Регистрация
Восстановить пароль
 
Sawyer1988
10 / 10 / 0
Регистрация: 04.03.2012
Сообщений: 128
#1

Замена слов в string - C++

09.11.2012, 22:07. Просмотров 514. Ответов 1
Метки нет (Все метки)

Подскажите в чём проблема. В строке нужно искать слова длиной >10 символов и менять их на другое слово. Смысл понятен , не получается правильно выполнить. Привожу код:
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
void replaceStr (string &Str)
{
    string sVau="V";
    char chars[] = "абвгдежзиклмнопрстуфхцчшщьъыэюяАБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890";
    int i;
    int len=0;
 
        
for (i=0;i<Str.length();i++)
    for (int j=0;j<sizeof(chars);j++)
 
        if(chars[j]==Str[i])
        {
           len++;
 
           if(len>10)
    {
         Str.erase(i-len,len);
        Str.insert(i-len,sVau);
        i=i-len+sVau.length();
        len=0;
        }
 
        }
        
        cout<<Str<<endl;
      }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2012, 22:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Замена слов в string (C++):

Использование библиотеки STL , контейнер string. Дан массив слов.Надо удалить все цифры из слов - C++
#include &quot;StdAfx.h&quot; #include &lt;string&gt; #include &lt;iostream&gt; #include &lt;algorithm&gt; using namespace std; int main() { string str...

Замена символов на пробелы в string - C++
Здравствуйте, есть такое задание:Есть вектор page в котором находятся string в нем записан большой текст в котором есть русские...

Замена всех string на char* - C++
В файле находятся строки типа «Фамилия», «Оценка», «Предмет». Вывести в файл список студентов в алфавитном порядке, у которых имеются...

Замена первых двух символов во всех string полях - C++
struct abonent { string Fname, Name, Otch, Adres, Home, Org; int Tnumber, Mnumber; }; int main() { int n; ...

Замена одного обратного слеша на 2 в строке текста (string) - C++
Привет всем. Есть такое задание - заменить один слеш на 2 ) Например: C:\Program Files\Common Files\Adobe AIR\Versions\1.0 ...

Нахождение количества слов в string - C++
Доброго времени суток. Задание такое: найти количество русских и английских букв, цифр, слов и предложений во введенной строке. Решил...

1
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
09.11.2012, 22:52 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
 
int main()
{
    std::string a("word1 jladhfads;kljf jdhskjhs kej qkjehr weksadfrw???  lsdkfjlsdkf lsdfls fladeqjrhkwj fdsakjfuytrw ewqhg sdfkjhsdfsdfsdfs!");
    std::string Replacement("=)");
    char NonWordSyms[] = " !?,.";
    std::string::size_type WordStart = -1, WordEnd = 0, WordLen;
    while((WordStart = a.find_first_not_of(NonWordSyms, WordEnd)) != std::string::npos)
    {
        WordEnd = a.find_first_of(NonWordSyms, WordStart);
        WordLen = (WordEnd == std::string::npos)? a.length() - WordStart: (WordEnd - WordStart);
        if(WordLen > 10)
        {
            a.replace(WordStart, WordLen, Replacement);
            WordEnd -= (WordLen - Replacement.length());
        }
    }
    std::cout<<a<<std::endl;
    std::cin.get();
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2012, 22:52
Привет! Вот еще темы с ответами:

Замена слов С\С++ - C++
Найти в введенном предложении числа, записанные словами, и записать их арабскими цифрами. Например: &quot;мне восемнадцать лет&quot; на &quot;мне 18 лет&quot;....

String. Расположение слов в обратном порядке - C++
Доброго времени суток. У меня снова вопрос касательно строк. Дана вот такая задача: {deleted} П.5.18.Правил Запрещено...

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

Замена слов в строке - C++
Программа берет данные из файла. Далее должна заменять Все слова н1 на н2. Однако получается только для первого найденного слова. ...


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

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

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