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

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

Восстановить пароль Регистрация
 
tania.
1 / 1 / 0
Регистрация: 28.12.2009
Сообщений: 53
08.07.2010, 12:41     Преобразовать строку, заменяя каждое слово "this" словом "that". #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".
Посмотрите здесь:

невозможно преобразовать параметр 1 из "const char [8]" в "LPCWSTR" C++
C++ вывести на друк слово "Одинаковые" если эти массивы полностью совпадают,и слово "Разные" в противоположном случае.
error C2664: CWnd::MessageBoxW: невозможно преобразовать параметр 2 из "long" в "LPCTSTR" C++
C++ Написать программу что меняло слово "кукушка" на "груша", с помощью стека
C++ Дана строка, в котором есть слово "да" или слово "нет". Если в нем есть слово "нет", то удалить его
C++ Error C2440: <function-style-cast>: невозможно преобразовать "unsigned int" в "std::bitset<_Bits>"
C++ Error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *"
Error C2440: =: невозможно преобразовать "void *" в "Node *" C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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".
Ответ Создать тему
Опции темы

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