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

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

Войти
Регистрация
Восстановить пароль
 
tania.
1 / 1 / 0
Регистрация: 28.12.2009
Сообщений: 53
#1

Преобразовать строку, заменяя каждое слово "this" словом "that". - C++

08.07.2010, 12:41. Просмотров 865. Ответов 1
Метки нет (Все метки)

подскажите в чем ошибка
задание:Преобразовать строку, заменяя каждое слово "this" словом "that".

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <string>
 
using namespace std;
void preobr(string s)
{
    string v;
v="this";
string w;
w="that";
int i,f, j;
i=0;
j=0;
f=0;
while(s[i]!='\0')
   {
       if(s[i]==v[j])
           {
           i++;
           j++;f=1;
           }
           else f=0;
        if(v[j]=='\0')
               if(i-4==0||s[i-5]==' ')
               {
                   j=0;
                   while(w[j]!='\0')
                   {
                       s[i-4]=w[j];
                       i++;
                       j++;
                   }
cout<<s;
               }
             if(f==0)
               {
 
                i++;
                j=0;}
 
           }
 
       }
int main()
{
    string s;
cin>>s;
preobr(s);
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2010, 12:41     Преобразовать строку, заменяя каждое слово "this" словом "that".
Посмотрите здесь:

Из слова апельсин путем "вырезок" и "склеек" его букв получить слово спаниель C++
невозможно преобразовать параметр 1 из "const char [8]" в "LPCWSTR" C++
Сколькими способами можно получить строку "В" из строки "А", вычеркивая некоторые символы C++
Со слова процессор путем "вырезок" и "склеек" его букв получить слово рессор C++
C++ Преобразовать параметр из "WCHAR [260]" в "const char *"
C++ вывести на друк слово "Одинаковые" если эти массивы полностью совпадают,и слово "Разные" в противоположном случае.
error C2664: CWnd::MessageBoxW: невозможно преобразовать параметр 2 из "long" в "LPCTSTR" C++
C++ Напишите программу, считывающую строку текста и заменяющую все четырехбуквенные слова словом "love"
C++ Error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *"
Error C2440: =: невозможно преобразовать "void *" в "Node *" C++
Найти все вхождения в строку последовательности символов "сто" и заменить на "100" C++
C++ Невозможно преобразовать "unsigned int" в "output::book_origin"

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
08.07.2010, 19:55     Преобразовать строку, заменяя каждое слово "this" словом "that". #2
tania., не заморачиваясь тем, что "this" может быть частью более длинного слова, вот:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
 
std::string & change(std::string & str, const std::string & from, const std::string & to){
    size_t pos;
    while ( ( pos = str.find(from) ) != std::string::npos )
        str.replace(pos, from.size(), to);
    return str;
}
 
int main(){
    std::string buf;
    const std::string from("this");
    const std::string to("that");
 
    std::cout << "String: ";
    std::getline(std::cin, buf);
    std::cout << "Result: " << change(buf, from, to) << std::endl;
 
    return 0;
}
Yandex
Объявления
08.07.2010, 19:55     Преобразовать строку, заменяя каждое слово "this" словом "that".
Ответ Создать тему
Опции темы

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