Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 1
Регистрация: 18.10.2010
Сообщений: 28

Замена букв или целых слов

23.12.2010, 18:06. Показов 2843. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вообщем есть 3 едита.edit1 edit2 edit3.В 1-ый вводиться строка(слово или предложение) во втором пишется слово буква ну подстрока вобщем.в edit3 пишется слово или буква которое заменит то что было написано в edit2 встроке и выведет измененный текст через label5.
Написать то я написал но программа работает некорректно.
Например ввожу в edit1 слово "Ворона",в edit2 ввожу букву "о".В edit3 ввожу"а".
На выходе получается "Варона".Как можно сделать чтобы получилось "Варана" а то я что то не въезжаю
C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString s1,s2,s3;
s1=Edit1->Text;
s2=Edit2->Text;
s3=Edit3->Text;
int i=s1.Pos(s2);
if (i)
 Label1->Caption=s1.SubString(1,i-1)+s3+s1.SubString(i+s2.Length(),255);
 else Label1->Caption="Совпадений не найдено";
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.12.2010, 18:06
Ответы с готовыми решениями:

Ввод текста и замена в нем первых букв всех слов на заглавные
Разработать программу, которая вводит текст и заменяет в ней первые буквы всех слов на заглавные (если слово начинается с заглавной буквы,...

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

Замена первых букв слов на прописные
Обработка строки введенной пользователем, заменяя первые буквы слов на прописные. Используя обязательно Memo, Label, SpeedButton и...

6
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
23.12.2010, 18:20
Arbes, можно воспользоваться методом StringReplace() для простоты работы:
C++
1
Edit1->Text=StringReplace(Edit1->Text,Edit2->Text,Edit3->Text,TReplaceFlags()<<rfReplaceAll);
1
0 / 0 / 1
Регистрация: 18.10.2010
Сообщений: 28
23.12.2010, 18:27  [ТС]
Где можно узнать про данный метод?А то я что то не понимаю как он работает
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
23.12.2010, 18:41
C++
1
2
3
4
5
6
Edit1->Text=
StringReplace(Edit1->Text, //Текст, в котором будет происходить замена
Edit2->Text,//Что заменяем
Edit3->Text,//На что заменям
TReplaceFlags()<<rfReplaceAll//Указываем флаги для замены (данный флаг указывает на то, что будут заменены все вхождения с)
);
1
0 / 0 / 1
Регистрация: 18.10.2010
Сообщений: 28
23.12.2010, 23:59  [ТС]
а можно ли использовать данный метод для удаления слов в которых произошла замена.Или все таки придется через char делать это.Просто мне нужно два варианта.1когда заменяет на символы из Edit3 2 когда в строке(Edit1) находятся слова содержащие подстроку(Edit2) и такие слова удаляются.

Добавлено через 5 часов 3 минуты
Чтобы не плодить темы спрошу в старой.
Хочу проделать такую операцию
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
{
 
 String s=Edit1->Text.c_str(), r=Edit1->Text.Length();// задал стоку со словами
  char* A = new char[ Edit1->Text.Length() + 1 ];//объявил динамический массив А
  strcpy( A, Edit1->Text.c_str() );// переместил элементы из строки в данный массив
   int j=0;
   char* B= new char[Edit1->Text.Length() + 1];
  for(int i=0;i<r;i++){
 
    int index1;
    if(A[i]!=" "){B[j]=A[i];// собственно хочу проверить условие когда в массиве проскакивает пробел.[C++ Error] Unit1.cpp(32): E2034 Cannot convert 'char' to 'char *' такое пишет.
    ++j;
    }{
 
 String s=Edit1->Text.c_str(), r=Edit1->Text.Length();
  char* A = new char[ Edit1->Text.Length() + 1 ];
  strcpy( A, Edit1->Text.c_str() );
   int j=0;
   char* B= new char[Edit1->Text.Length() + 1];
  for(int i=0;i<r;i++){
 
    int index1;
    if(A[i]!=" "){B[j]=A[i];
    ++j;
    }
Я вообще корректно пытаюсь найти пробел между словами?
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
24.12.2010, 00:41
Цитата Сообщение от Arbes Посмотреть сообщение
C++
1
if(A[i]!=" "){B[j]=A[i];
Исправьте на:
C++
1
2
3
4
if(A[i] != ' ') {
  B[j] = A[i];
  // ...
}
А вообще, проще выполнить поиск через strtok.
Принцип его работы я показывал здесь: Символьные массивы.
1
0 / 0 / 1
Регистрация: 18.10.2010
Сообщений: 28
24.12.2010, 10:25  [ТС]
Вообщем програма работает но есть одна неприятность.Например дана строка.abc bcd cde eba,подстрока с буквой d.В итоге удаляются слова содержащие букву d.Выводиться abc eba,но между ними выскакивают посторонние символы.Как это исправить?
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
void __fastcall TForm1::RunBtnClick(TObject *Sender)
 
{
 
 String s=Edit1->Text.c_str(), r=Edit1->Text.Length();
  String d=Edit2->Text;
  int k=Edit1->Text.Length(),j=0;
  char D[2];
  strcpy(D,Edit2->Text.c_str());
  char* A = new char[ k + 1 ];
  strcpy( A, Edit1->Text.c_str() );
 
   char* B= new char[k + 1];
 
   char s1[100];
 
 
  for(int i=0;i<=r;i++){
 
 
    if((A[i]==' ')||(A[i]=='\0')) {
       for(int i=0;i<j;++i)
          if(B[i]==D[0]) {
           delete[]B;
           char* B= new char[k + 1];
           j=0;
           break;
           }
 
          else
              if((i+1)==j){
 
               strcat(s1,B);
 
               delete[]B;
               char* B= new char[k + 1];
               j=0;
               break;
              }
 
 
    }
    else
    {
    B[j]=A[i];
    ++j;
 
    }
 
    }
    delete[]A;
Label1->Caption=s1;
delete[]s1;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.12.2010, 10:25
Помогаю со студенческими работами здесь

Замена слов на многоточие и вывод только согласных букв в предложении
Всем привет. Не могу разобраться. 1.Дано предложение, в котором одно из слов заключено в квадратные скобки. Заменить слово внутри...

Определить каких слов в тексте больше: состоящие только из слов или только из букв
определить каких слов в тексте больше: состоящие только из слов или только из букв??? я не могу сделать проверку на наличие в слове и букв...

Обработка строк: определиния упорядоченности слов лексикографически, замена букв, поиск и вывод самого длинного слова.
Помогите, пожалуйста решить задачу на C: Дан текст. 1) Определить, упорядочены ли лексикографически слова данного предложения...

Подстановка или замена определенных слов на соответствующие
Есть: Фара лев п/корректор Фара лев с рег.мотор (китай) Фара прав п/корректор Фара прав с рег.мотор (китай) нужна формула для...

Замена прописных букв на заглавные. Ввод из файла или с клавиатуры
Доброго времени суток! Помогите пожалуйста написать программу, запрашивающую ввод текста, в котором заменяет все прописные буквы на...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru