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

Заменить сочетание слов в строке - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ CreateProcess рекурсия. http://www.cyberforum.ru/cpp-beginners/thread347863.html
Пробую запустить процесс сам из себя, используя CreateProcess(). Путем проверки, кол-ва парам-ров командной строки, (когда создаю дочерний процесс отправляю через ком. строку "child"), т.к. argv...
C++ Закрепление материала Привет всем. У меня такой вопрос. Я изучил книгу Лафоре "ООП в C++". Естественно какие-то моменты под забываются. Я хотел бы устроится работать программистом, но на своём уровне я пока не дотягиваю,... http://www.cyberforum.ru/cpp-beginners/thread347850.html
Вопрос по динамическому полиморфизму C++
Здравствуйте. Прочитал про статический и динамический полиморфизмы. Возник такой вопрос. Имеем код: #include <iostream> class base { ... public:
Не могу понять задание. C++
Определить класс - "Комплексное число" в виде модуля и аргумента комплексного числа. Составить пользовательскую функцию, которая вычисляет таблицу значений заданной математической функции ...
C++ Проверка кратности чисел. http://www.cyberforum.ru/cpp-beginners/thread347806.html
Программа должна выводить все числа кратные 11-ти в заданном диапазоне: void main() { int i=10,lim; cout<<"Enter upper limit:\n"; cin>>lim; while (i<=lim) { if ((i%11)==true)...
C++ Алгоритмы планирования разветвленной структуры. S = фигурная скобка, которая объединяет три уравнения: 1)ax+bx(x - в квадрате)-c, где x<a 2)a/x+(квадратный корень из (x+1)), где x=a 3)(a+bx)/(квадратный корень из выражения (x+1)), где x>a. И... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9627 / 5575 / 947
Регистрация: 25.07.2009
Сообщений: 10,710
04.09.2011, 17:49
Цитата Сообщение от kazak Посмотреть сообщение
а если вхождений искомого слова будет несколько?
Хороший вопрос!
Если не заморачиваться проверкой переполнения и оптимизацией, то как-то так
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
#include <stdio.h>
#include <string.h>
 
#define FIND "AAA"
#define REPLACE "BBBB"
 
char * strreplace(char * str, const char * from, const char * to){
    char buf[BUFSIZ] = { 0 };
    char * pBuf, * pStr, * pFind;
    
    pBuf = buf;
    pStr = str;
    
    while ( pFind = strstr(pStr, from) ){
        strncpy(pBuf, pStr, pFind - pStr);
        pBuf[pFind - pStr] = '\0';
        strcat(pBuf, to);
        strcat(pBuf, pFind + strlen(from));
        pStr = pFind + strlen(from);
        if ( pFind = strstr(pBuf + 1, pStr) )
            pBuf = pFind;
    }
    
    return ( pBuf == buf ) ? str : strcpy(str, buf);
}
    
 
int main(void){
        char buf[BUFSIZ];
 
        while ( printf("String: ") && scanf("%[^\n]%*c", buf) == 1 )
            printf("Result: %s\n", strreplace(buf, FIND, REPLACE));
 
        return 0;
}
Вроде бы работает...

Добавлено через 6 минут
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Предлагаю заюзать методы CString
А если нет CString - написать его сначала?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru