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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2013, 22:09   #1
Lers
Пользователь
 
Регистрация: 12.12.2012
Сообщений: 33
По умолчанию строки:заменить каждый символ '/' на пару символов ': '

Код:
void task1(char *s, int &kol1, int &kol2)
{
 char *r;
 char a[30];
 r=s;

while((r=strstr(r,"/"))!=0)
 {
     *r=": ";
     strcpy(r+1,r+1);
 }
r=s;
заменить каждый символ '/' на пару символов ': '. Обязательное использование библиотеки string.h
Хелп, : только появляется, а пробел нет(
Lers вне форума Ответить с цитированием
Старый 15.05.2013, 23:38   #2
Lers
Пользователь
 
Регистрация: 12.12.2012
Сообщений: 33
По умолчанию

хелп пожалуйста(
Lers вне форума Ответить с цитированием
Старый 15.05.2013, 23:43   #3
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

Ну первое что идет в голову это:

1. Получаем индекс первого найденного символа / (метод find_first_of) <- точно название не помню, но вроде такое
2. Записываем в отдельный string всё то, что после символа / (метод substr)
3. Отсекаем эту часть вместе с символом / (метод erase)
4. Добавляем в основной string символы ": " с помощью перегруженной операции +
string = string + ": ";
5. Добавляем отсеченную ранее часть (п.2)

Уверен что есть способы побыстрее и полегче
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.

Последний раз редактировалось kineziz; 15.05.2013 в 23:46.
kineziz вне форума Ответить с цитированием
Старый 16.05.2013, 00:22   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2Lers
Код:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

char *replace(const char *str)
{
	char *ret = (char *) malloc(2 * strlen(str) + 1);
	char *ptr = ret;

	while (*str) {
		if (*str == '/') {
			*ptr++ = ':';
			*ptr++ = ' ';
		} else {
			*ptr++ = *str;
		}
		++str;
	}

	*ptr = '\0';
	return ret;
}

int main(int argc, char *argv[])
{
	char *str;

	str = replace("hello/world!");
	puts(str);
	free(str);

	str = replace("h/el/lo/, world/!");
	puts(str);
	free(str);

	str = replace("///");
	puts(str);
	free(str);

	return 0;
}
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 16.05.2013, 11:24   #5
Lers
Пользователь
 
Регистрация: 12.12.2012
Сообщений: 33
По умолчанию

Спасибо большое!
Lers вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны две строки длиной до 80 символов. Необходимо: удалить заданный символ в каждой строке irek01 Visual C++ 0 23.05.2012 17:22
Assembler!!! Заменить на символ ‘!’ каждый 3тий символ в строке. Leon9313 Помощь студентам 0 24.04.2012 13:02
Получить из данной строки новую строку, в которой каждый символ продублировать grev_4 Паскаль, Turbo Pascal, PascalABC.NET 3 27.12.2010 23:42
выписать каждый 5-символ StillFree Microsoft Office Word 23 25.03.2009 22:03
Удвоить каждый символ строки, потом перевернуть строку Didi Помощь студентам 6 20.05.2008 15:33