Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2010, 14:26   #1
sem_1989
Пользователь
 
Аватар для sem_1989
 
Регистрация: 25.09.2010
Сообщений: 56
Вопрос поиск и замена подстроки в строках

Сдравствуйте, задача состоит в том, что-бы в данном тексте найти вхождения заданного слова и поменять его на вводимое пользователем,
ниже приведён текст программы, но без интерактивного ввода слов(мелочь),
вопрос в следующем : правильно ли организован алгоритм, и если правильно - то почему код не работает, зарание спасибо за возможные варианты ответов..
Код:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
    char text[] = "vvv aaa bbbb aaa cccc\0";
    char str1[] = "aaa";
    char str2[] = "vstavka";
    char buff[100];

    int lentext = strlen(text);
    printf("\nIshodniy : %s\n", text);
    int i;
    for ( ; ; i++)
    {
        char * point = strstr( text, str1);
        if (!point) break;
        int lenpoint = strlen(point);
        int delta = lentext - lenpoint;
        if ( lentext > lenpoint)
        {
            strncpy(buff, text, delta - 1);
            strcat(buff, " ");
            strncat(buff, str2, strlen(str2));
            if (delta - strlen(str1) > 0)
            {
                strcat(buff , point + strlen(str1));
            }
            strcpy(text,buff);
        }
    }
    printf("\nIshodniy : %s\n", text);

    system("PAUSE");
	return 0;
}
sem_1989 вне форума Ответить с цитированием
Старый 28.11.2010, 16:46   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Предлагаю разбивать строку на массив слов:http://www.programmersforum.ru/showthread.php?t=121545
а потом собирать из массива в строку, но с заменой нужного тебе слова на другое.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.12.2010, 18:44   #3
sem_1989
Пользователь
 
Аватар для sem_1989
 
Регистрация: 25.09.2010
Сообщений: 56
По умолчанию

Спасибо, всё получилось))
sem_1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
замена подстроки Alex_sim Общие вопросы по Java, Java SE, Kotlin 1 12.11.2010 12:43
замена подстроки на ява Alex_sim Помощь студентам 0 12.11.2010 08:55
поиск в строках katena88 Общие вопросы C/C++ 3 28.10.2010 13:26
Задача Delphi 7 - Замена подстроки в строке Юрий2009 Помощь студентам 3 23.04.2009 10:12
Работа с текстом (замена подстроки) GAGARIN-NEW Общие вопросы Delphi 12 20.11.2007 16:54