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

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

Восстановить пароль Регистрация
 
Sawyer1988
10 / 10 / 0
Регистрация: 04.03.2012
Сообщений: 128
09.11.2012, 22:07     Замена слов в string #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;
      }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2012, 22:07     Замена слов в string
Посмотрите здесь:

C++ замена слов
Замена одного обратного слеша на 2 в строке текста (string) C++
Замена символов на пробелы в string C++
C++ замена слов
замена слов C++
C++ Использование библиотеки STL , контейнер string. Дан массив слов.Надо удалить все цифры из слов
Замена всех string на char* C++
C++ Замена первых двух символов во всех string полях

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
09.11.2012, 22:52     Замена слов в string #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();
}
Yandex
Объявления
09.11.2012, 22:52     Замена слов в string
Ответ Создать тему
Опции темы

Текущее время: 22:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru