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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2009, 19:55   #1
darvin17
Новичок
Джуниор
 
Регистрация: 01.12.2009
Сообщений: 2
По умолчанию народ нужна помошь в строках

не могу сделать лабу, помогите ее сделать.

вообщем в лабе нужно найти в исходной строке все вхождения заданной подстроки и заменить их на другую строку.
(Подстрока и строка для замены вводится пользователем).
напишите исходник пожалуйста (только не сильно мудренный, пожалуйста, полегче)
darvin17 вне форума Ответить с цитированием
Старый 01.12.2009, 20:14   #2
GonZaleZ
Пользователь
 
Регистрация: 19.06.2009
Сообщений: 57
По умолчанию

http://programmersforum.ru/showthread.php?t=34061
GonZaleZ вне форума Ответить с цитированием
Старый 01.12.2009, 20:56   #3
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Это вам во фриланс. За символическую плату вам там это сделают.
Либо же - давайте наработки.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 01.12.2009, 21:07   #4
darvin17
Новичок
Джуниор
 
Регистрация: 01.12.2009
Сообщений: 2
По умолчанию

Цитата:
Сообщение от GonZaleZ Посмотреть сообщение
Ок вообщем пробовал написать, вот что у меня получилось

Код:
#include "iostream.h"
#include "string.h"
#include "stdio.h"
char* concatenate( char str1[], char str2[] ){
	char *res;
	int i,ls1,ls2;
    ls1 = strlen(str1);
    ls2 = strlen(str2);
	res = new char[ls1 + ls2 + 1];
	for ( i = 0; i < ls1; i ++ ){
		res[i] = str1[i];
	}
    for ( i = 0; i < ls2; i ++ ){
		res[ls1 + i] = str2[i];
	}
	res[ls1 + ls2] = '\0';
    return res;
}

char* replace( char str[], char oldsubstr[], char newsubstr[] ){
	int i, osl, sl, maxL = 1000;
    char* resultat;
    resultat = new char[maxL];
	resultat[0] = '\0';
    i = 0;
    sl = strlen(str);
    osl = strlen(oldsubstr);
    if ( osl == 0 ) { cout << "Old Substring must have length > 0"; return str; }
	while ( i <= sl - osl ){
		if ( equals( oldsubstr, getSubstring( str,i,i + osl - 1 ) ) ){
			resultat = concatenate(resultat,newsubstr);
			i = i + osl;
		} else { 
            resultat = concatenate(resultat, getSubstring(str,i,i));
            i ++;
		}
	}
    if ( i < sl ) {
		resultat = concatenate(resultat,getSubstring(str,i,sl-1)); 
	}
	resultat[strlen(resultat)] = '\0';
    return resultat;
}

void main(){
	int maxL = 10000;
	char *str, *oldsubstr, * newsubstr;
	str = new char[maxL];
	oldsubstr = new char[maxL];
	newsubstr = new char[maxL];
	cout << "Laba№4.\nEnter string: ";
    cin.getline(oldsubstr,maxL);
    cout << "Enter PodStroka: "; 
	cin.getline(oldsubstr,maxL);
    cout << "Enter Stroka2: "; 
	cin.getline(oldsubstr,maxL);
    cout << "Result: " << replace(str,oldsubstr,newsubstr) << "\nThe End" << endl; 
    getchar();
}

сразу говорю некоторые вещи скатывал с книги. Но она у меня не получилась, выдает много ошибок. помогите исправить ошибки

Последний раз редактировалось Sazary; 03.12.2009 в 19:50.
darvin17 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помошь!!! MuRDoK Паскаль, Turbo Pascal, PascalABC.NET 0 08.05.2009 01:05
Нужна помощь в строках на С++ profi Помощь студентам 1 29.12.2008 11:25
Нужна помошь с c++ Sanctus Общие вопросы C/C++ 3 02.10.2008 03:22