Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
1 / 1 / 1
Регистрация: 08.09.2014
Сообщений: 77

Вставить слово в определенную позицию в тексте

23.11.2014, 22:31. Показов 6817. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Организовать ввод эталонного слова и предложения (слова разделяются пробелом(пробелами)). По выбору пользователя вставить эталонное слово а)в конец предложения; б)в начало предложения; в)после слова N (вводится пользователем).

Требования на картинке ниже)

Помогите организовать функции)

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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
void func1(char *pred, char *etalon)
{
}
 
void func2(char*pred, char*etalon)
{
}
 
void func3(char*pred, char*etalon, char*slovo)
{
}
 
void main()
{ 
  setlocale(LC_ALL, "Russian");
  char *pred[100];
  char *etalon[100];
  char *slovo[100];
  int a;
  while(1)//возможность многократного выполнения алгоритма 
{
  cout << "Введите предложение на транслите: " << endl;
  cin.getline(pred,100);
  cout << "Введите слово эталон:" << endl;
  cin >> etalon;
  cout << "Куда вставить слово эталон:" << endl;
  cout << "1) в конец предложения; " << endl;
  cout << "2) в начало предложения; " << endl;
  cout << "3) после слова N: " << endl;
  cin >> a;
 
   if (a==1)
      func1(pred, etalon,dlina);
   if (a==2)
      func2(pred, etalon);
   if (a==3)
     {cout << "Введите слово после которого хотите вставить слово еталон: " << endl;
     cin >> slovo;
     func3(pred, etalon, slovo);}
   if (a==0)
     {break;}
 }
  system("pause");
}
Миниатюры
Вставить слово в определенную позицию в тексте  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.11.2014, 22:31
Ответы с готовыми решениями:

Вставить заданное число в определенную позицию массива
Вставить заданное число в массив целых чисел: a)перед всеми элементами, кратными числу A; б)после всех отрицательных элементов. Каким...

Вставить слово в указанную позицию во все строки массива
У меня есть массив string, который заполняет пользователь. После того как массив заполнен нужно вставить дополнительное слово во все...

Вставить заданое слово перед заданим словом в тексте
Помогите нужно срочно переделать програму есть програма &quot;Удалить слово перед заданым словом в тексте&quot; а нужно сделать &quot;Вставить...

28
1 / 1 / 1
Регистрация: 08.09.2014
Сообщений: 77
24.11.2014, 11:02  [ТС]
Студворк — интернет-сервис помощи студентам
ssergius, это все организовано, все вроде правильно должно работать
но
C++
1
char pred[100];
неправильно выводится
если я запишу так:
C++
1
2
cout << "Введите предложение на транслите: " << endl;
  cin.getline(pred,99);
то не срабатывает func3() и когда идет следующий запрос, то все начинается не с запроса предложения, а сразу свова еталон
Если я ввиду так:
C++
1
2
cout << "Введите предложение на транслите: " << endl;
  cin >> pred;
то если я ввожу больше одного слова при запросе ввести предложение, начинается бесконечный цикл вывада, в общем что-то страшное выбивает
0
6 / 6 / 5
Регистрация: 10.03.2013
Сообщений: 48
24.11.2014, 11:51
Попробуйте после ввода слова предложений вставить cin.clear();
0
1 / 1 / 1
Регистрация: 08.09.2014
Сообщений: 77
24.11.2014, 12:12  [ТС]
ssergius, не получается
у меня просто что-то с программой скорее всего
0
6 / 6 / 5
Регистрация: 10.03.2013
Сообщений: 48
24.11.2014, 12:18
Вставьте ещё тогда cin.sync();
Скиньте код сюда, гляну как вставили
0
1 / 1 / 1
Регистрация: 08.09.2014
Сообщений: 77
24.11.2014, 12:51  [ТС]
ssergius, тогда сразу плдмкажите после какой строчки нужно)
0
6 / 6 / 5
Регистрация: 10.03.2013
Сообщений: 48
24.11.2014, 12:58
Там где у вас идёт,после него cin >> blablabla; cin.clear(); cin.sync();
0
1 / 1 / 1
Регистрация: 08.09.2014
Сообщений: 77
24.11.2014, 15:18  [ТС]
ssergius, ещё одна проблема, нигде не использовался указатель

Добавлено через 44 минуты
ssergius,
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include "stdafx.h"
#define _CRT_SECURE_NO_WARNINGS
 
#include <iostream>
 
using namespace std;
 
void func1(char *pred, char *etalon)
{
    // операция конкатенции, объединение строк
    strcat_s(pred, 50, " "); // скопировать пробел после предложения
    strcat_s(pred, 50, etalon); //скопировать слово эталон перед предложением
    cout << "Text: " << pred << endl; 
}
 
void func2(char*pred, char*etalon)
{
    strcat_s(etalon, 50, " ");//скопировать пробел после слова эталона
    strcat_s(etalon, 50, pred);
    cout << "Text: " << etalon << endl;
}
 
void func3(char* pred, char* etalon, char* slovo)
{
    int i = 0, k = 0;
    int len;
    char tempvar[50];
 
    len = strlen(slovo);// количество символов в слове
    while (i < strlen(pred))//проверяет каждую букву в предложении
    {
        if (pred[i] == slovo[k] && k < len) /*условие сравнивает символ предложения с символом слова, после которого надо вставить, 
            если совпадает, то увеличиваем К, если нет то К обнуляется.*/
            k++;
        else if (k == len && pred[i++] == ' ') 
            break;
        else 
            k = 0;
        i++;
    }
    k = 0; 
    int s = i;
    while (s < strlen(pred)) 
    {
        tempvar[k] = pred[s];//записываемм вторую часть предложения во временную переменную
        k++;
        s++;
    }
    pred[i] = '\0';//начиная с i-го символа в предложении заполняем всю правую часть пустотой(правая часть уже скопирована в tempvar)
    tempvar[k] = '\0';//тоже самое делаем и тут, иначе во второй части предложения, которую мы скопировал в цикле ранее запишется мусор
    strcat_s(etalon, 50, " ");//скопировать пробел после слова эталона, идёт обьединение строк
    strcat_s(etalon, 50, pred);
    strcat_s(pred, 50, tempvar);
    cout << "Text: " << pred << endl;
}
 
void main()
{ 
  setlocale(LC_ALL, "Russian");
  char pred[100];
  char etalon[100];
  char slovo[100];
  int a;
  while(1)//возможность многократного выполнения алгоритма 
{
  cout << "Введите предложение на транслите: " << endl;
  cin >> pred;
  cin.clear(); 
  cin.sync();
  cout << "Введите слово эталон:" << endl;
  cin >> etalon;
  cout << "Куда вставить слово эталон:" << endl;
  cout << "1) в конец предложения; " << endl;
  cout << "2) в начало предложения; " << endl;
  cout << "3) после слова N: " << endl;
  cin >> a;
 
   if (a==1)
      func1(pred, etalon);
   if (a==2)
      func2(pred, etalon);
   if (a==3)
     {cout << "Введите слово после которого хотите вставить слово еталон: " << endl;
     cin >> slovo;
     func3(pred, etalon, slovo);}
   if (a==0)
     {break;}
 }
  system("pause");
}
0
6 / 6 / 5
Регистрация: 10.03.2013
Сообщений: 48
24.11.2014, 16:15
Для чего нужен указатель в вашей проге?
0
1 / 1 / 1
Регистрация: 08.09.2014
Сообщений: 77
24.11.2014, 16:46  [ТС]
ssergius, для динамического массива.
Преподователь уточнил, что нужно использовать указатель в самой программе.
Если Вам не сложно помочь мне, буду очень рада. Но если Вас уже достала эта программа, то спасибо за то что мне помогли в этом. Есть хоть от чего отбиваться дальше)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.11.2014, 16:46

В любом тексте между 3 и 4 словом вставить новое слово
Ребят,помогите пожалуйста,в работе со строками совсем не шарю. Задание:в любом тексте между 3 и 4 словом вставить новое слово(работать с...

В набранном тексте вставить между 1-ым и 2-ым словом новое слово
В пpоизвольном тексте вставить между пеpвым и втоpым словом новое слово. Если можно с пояснениями, для чайника))0

В произвольном тексте вставить после первого слова новое слово
Дана последовательность символов A1, …, An. Группы символов, разделенные пробелом (одним или несколькими) и не содержащие пробелов внутри...

В произвольном тексте вставить между вторым и третьим словом новое слово
&quot;В произвольном тексте вставить между вторым и третьим словом новое слово.&quot; Помоги пожалуйста)) С коментариями если можно для...

Вставить в строку H в позицию J подстроку T , а в позицию Y число X
Вставать в строку H в позицию J подстроку T , а в позицию Y число X. Вывести на экран символьную строку до и после изменения. Пользователь...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru