Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 19.12.2014
Сообщений: 17

Заменить выбранное вами слово на другое слово

05.06.2015, 19:57. Показов 2015. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Прошу помочь разобраться с ошибками.

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
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
 
int main()
{   
    setlocale(LC_ALL,"Rus");
    char str[100];
    char out, in, len, outlen, inlen;
    cout<<"Введите строку:\n";
    cin.getline(str,100);
    cout<<"Слово, которое надо заменить в строке:\n";
    cin>>out;
    cout<<"Слово, на которое надо заменить:\n";
    cin>>in;
    len=strlen(str);
    outlen=strlen(out);
    inlen=strlen(in);
    if (in==out)
    {
        for(int i=0;i<len;++i)
        { 
            size_t pos = 0;
            while (strchr(str,out)!= 0)
            {
                pos=strstr(str,out);
                str.replace(pos,out,in);
            }
        }    
         
    }
    else 
    { cout << "Заменяемое слово и слово, на которое надо заменить должны иметь одинаковое количество символов" << endl; }
    cout<<"Результат:\n";
    for(i=0; i<len; i++)
        cout<<str<<endl;
    cin.get();
    return 0;
}
Программка, по-идее, должна заменять выбранное вами слово на другое слово, в введенной вами строке. Так же, есть правило: слово, которое надо заменить, и слово, на которое надо заменить, должны иметь одинаковое кол-во символов.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.06.2015, 19:57
Ответы с готовыми решениями:

Заменить заданное слово в тексте, находящемся в заданном файле, на другое слово.
Заменить заданное слово в тексте, находящемся в заданном файле, на другое слово.

Заменить в тексте одно слово на другое
в текстовом файле содержащий код программы на языке С, заменить все вхождения одного заданного пользователем идентификатора на другой

Заменить в строках первое слово на другое
задание такое: задан текст, содержащий произвольное кол-во строк, в которых отдельные слова могут разделяться одним или несколькими...

9
67 / 67 / 72
Регистрация: 10.04.2015
Сообщений: 281
05.06.2015, 20:35
Цитата Сообщение от Snuss Посмотреть сообщение
len=strlen(str);
Цитата Сообщение от Snuss Посмотреть сообщение
char len, outlen, inlen;
Поменять тип данных вышеуказанных переменных на int
[quote="Snuss;7723800"]char
Цитата Сообщение от Snuss Посмотреть сообщение
char out, in
Заменить на out[255], int [255]. Т.к. туда вы записываете больше 1 символа.
C++
1
if (in==out)
if(strlen(in) == strlen(out)){}
for(i=0; i<len; i++)// убрать этот цикл.
cout<<str<<endl;//этого достаточно
1
0 / 0 / 0
Регистрация: 19.12.2014
Сообщений: 17
05.06.2015, 20:52  [ТС]
mr_mczakenberg, сделано, но всё-равно не идет.
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
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
 
int main()
{   
    setlocale(LC_ALL,"Rus");
    char str[100];
    char out[255], in[255];
    int len;
    cout<<"Введите строку:\n";
    cin.getline(str,100);
    cout<<"Слово, которое надо заменить в строке:\n";
    cin>>out;
    cout<<"Слово, на которое надо заменить:\n";
    cin>>in;
    len=strlen(str);
    if(strlen(in) == strlen(out))
    {
        for(int i=0;i<len;++i)
        { 
            size_t pos = 0;
            while (strchr(str,out)!= 0)
            {
                pos=strstr(str,out);
                str.replace(pos,out,in);
            }
        }    
         
    }
    else 
    { cout << "Заменяемое слово и слово, на которое надо заменить должны иметь одинаковое количество символов" << endl; }
    cout<<"Результат:\n";
    cout<<str<<endl;
    cin.get();
    return 0;
}
Компилятор указывает на ошибку в этом месте
C++
1
2
pos=strstr(str,out);
str.replace(pos,out,in);
0
 Аватар для ArtFeather
14 / 14 / 13
Регистрация: 04.06.2015
Сообщений: 85
05.06.2015, 21:06
Лучший ответ Сообщение было отмечено Snuss как решение

Решение

Попробовал сделать без библиотеки string, надеюсь не обязательно было её использовать Вам

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Rus");
 
    char str[100];
    char *out = new char[];
    char *in = new char[];
    int len, outlen, inlen;
 
    cout << "Введите строку:\n";
    cin.getline(str, 100);
 
    cout << "Слово, которое надо заменить в строке:\n";
    cin >> out;
 
    cout << "Слово, на которое надо заменить:\n";
    cin >> in;
 
    len = strlen(str);
    outlen = strlen(out);
    inlen = strlen(in);
 
    int check = 0, pos = 0;
    int j = 0;
    if (outlen == inlen)
    {
        for (int i = 0; i < len; ++i)
        {
            if (str[i] == out[j])
            {
                check++;
                j++;
 
            }
            if (j == inlen)
            {
                pos = (i - inlen) + 1;
                j = 0;
            }
            if (check == inlen)
            {       
                do{
                    str[pos] = in[j];
                    j++;
                    pos++;
                    if (j == inlen)
                        check = 0;
                } while (check != 0);
                
            }
        }
 
    }
    else
    {
        cout << "Заменяемое слово и слово, на которое надо заменить должны иметь одинаковое количество символов" << endl;
    }
    cout << "Результат:\n";
        cout << str << endl;
    _getch();
    return 0;
}
1
0 / 0 / 0
Регистрация: 19.12.2014
Сообщений: 17
05.06.2015, 21:21  [ТС]
ArtFeather, что без библиотеки string, вообще прекрасно Но компилятор жалуется на библиотеку conio.h, похоже такой не знает.
0
 Аватар для ArtFeather
14 / 14 / 13
Регистрация: 04.06.2015
Сообщений: 85
05.06.2015, 21:23
Не вопрос:

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Rus");
 
    char str[100];
    char *out = new char[];
    char *in = new char[];
    int len, outlen, inlen;
 
    cout << "Введите строку:\n";
    cin.getline(str, 100);
 
    cout << "Слово, которое надо заменить в строке:\n";
    cin >> out;
 
    cout << "Слово, на которое надо заменить:\n";
    cin >> in;
 
    len = strlen(str);
    outlen = strlen(out);
    inlen = strlen(in);
 
    int check = 0, pos = 0;
    int j = 0;
    if (outlen == inlen)
    {
        for (int i = 0; i < len; ++i)
        {
            if (str[i] == out[j])
            {
                check++;
                j++;
 
            }
            if (j == inlen)
            {
                pos = (i - inlen) + 1;
                j = 0;
            }
            if (check == inlen)
            {       
                do{
                    str[pos] = in[j];
                    j++;
                    pos++;
                    if (j == inlen)
                        check = 0;
                } while (check != 0);
                
            }
        }
 
    }
    else
    {
        cout << "Заменяемое слово и слово, на которое надо заменить должны иметь одинаковое количество символов" << endl;
    }
    cout << "Результат:\n";
        cout << str << endl;
        delete[] out;
        delete[] in;
        system("pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 19.12.2014
Сообщений: 17
05.06.2015, 21:33  [ТС]
ArtFeather, компилятор выдает новые ошибки:

error: expected primary-expression before ']' token
C++
1
2
char *out = new char[];
char *in = new char[];
error: 'strlen' was not declared in this scope
C++
1
len = strlen(str);
error: 'system' was not declared in this scope
C++
1
system("pause");
0
 Аватар для ArtFeather
14 / 14 / 13
Регистрация: 04.06.2015
Сообщений: 85
05.06.2015, 21:47
Цитата Сообщение от Snuss Посмотреть сообщение
error: 'strlen' was not declared in this scope
Придётся все же вам их подключить:
C++
1
2
#include<cstring>
#include<string.h>
Цитата Сообщение от Snuss Посмотреть сообщение
error: 'system' was not declared in this scope
C++
1
#include <cstdlib>
Цитата Сообщение от Snuss Посмотреть сообщение
error: expected primary-expression before ']' token
C++
1
2
    char out[10];
    char in[10];
0
0 / 0 / 0
Регистрация: 19.12.2014
Сообщений: 17
05.06.2015, 22:04  [ТС]
ArtFeather, компилятор сильно ругается, когда удаляет строки, в конце, но программа работает Спасибо большое, очень помогли!
0
 Аватар для ArtFeather
14 / 14 / 13
Регистрация: 04.06.2015
Сообщений: 85
05.06.2015, 22:05
C++
1
2
delete[] out;
delete[] in;
Это уже убрать надо если мы создали статический массив.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.06.2015, 22:05
Помогаю со студенческими работами здесь

В тексте заменить слово А(любое слово) на слово В(любое слово). А и В разной длинны
Не могу сообразить как написать программу: Пользователь вводит текст Необходимо замениь слово А(любое слово) на слово В(любое...

Заменить в строке одно слово на другое, заданное с клавиатуры.
Условие задачи: Заменить в строке одно слово на другое, заданное с клавиатуры. Текст программы: #include&lt;conio.h&gt; ...

Заменить в строке одно слово на другое, заданное с клавиатуры.
Строка: aa1 bb1 cc1 dd1 слово 1: bb1 слово 2: ff1 решение: aa1 ff1 cc1 dd1 Для начинающего программиста, если можно то программу...

Распечатать количество вхождений заданного слова в каждую строку и заменить его на другое заданное слово
Даны две строки, содержащие не более 100 символов. Строки состоят из слов, разделенных пробелами. Распечатать количество вхождений...

Ввести строку. Заменить заданное слово на другое слово в строке
Всем доброго. Возможно тему отправила не по адресочку...извиняйте ! В общем очень нужна помощь с составление программы.. помогите...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru