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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2009, 15:11   #1
RZMTZM
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 22
По умолчанию Си. строки.

Товарищи форумчане, подскажите пожалуйста, как в строке заменить слово, состоящее из минимального количества символов, на другое заданное, например
дано

qwerty.lol.proga

вывести

qwerty.novoeslovo.proga
RZMTZM вне форума Ответить с цитированием
Старый 27.12.2009, 15:54   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

1. определить минимальное слово и его позицию
2. скопировать в новый буфер все, что слева этого слова
3. скопировать в буфер новое слово
4. скопировать в буфер все, что справа этого слова
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 вне форума Ответить с цитированием
Старый 27.12.2009, 16:16   #3
RZMTZM
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 22
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
1. определить минимальное слово и его позицию
2. скопировать в новый буфер все, что слева этого слова
3. скопировать в буфер новое слово
4. скопировать в буфер все, что справа этого слова
А в коде, если не сложно, можно изобразить?)
RZMTZM вне форума Ответить с цитированием
Старый 27.12.2009, 16:49   #4
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

А сколько вы готовы за это заплатить?
http://programmersforum.ru/showthread.php?t=34061
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 27.12.2009, 16:50   #5
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2RZMTZM
влом. тут и так делать нечего
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 вне форума Ответить с цитированием
Старый 27.12.2009, 17:35   #6
RZMTZM
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 22
По умолчанию

Ну я же сказал, если не сложно)
RZMTZM вне форума Ответить с цитированием
Старый 27.12.2009, 18:37   #7
v01d
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 33
По умолчанию

Вспоминая синтаксис, вот что у меня вышло вышло:
Код:
#include "stdafx.h"
#include <iostream>

int _tmain()
{
	char str[] = "qwerty.lol.program";
	char replacementWord[] = "replaced";
	char resultStr[100] = "";
	int shortestWordStart = 0;
	int wordStart = 0;
	int shortestWordEnd = strlen(str);
	int wordEnd;
	int i, j, k;

	// searching for shortest word position
	for (i=0; i<=strlen(str); i++)
	{
		if (str[i]=='.' || i==strlen(str))
		{
			wordEnd = i-1;
			if (wordEnd-wordStart < shortestWordEnd-shortestWordStart)
			{
				shortestWordStart = wordStart;
				shortestWordEnd = wordEnd;
			}
			if (i<strlen(str)) wordStart = i+1;
		}
	}

	// displayng shortest word
	std::cout << "shortest word is '";
	for (i=shortestWordStart; i<=shortestWordEnd; i++)
		std::cout << str[i];
	std::cout << "'" << std::endl;

	// replacing shortest word in source string 
	for (i=0, k=0; i<shortestWordStart; i++, k++)
		resultStr[k] = str[i];
	for (j=0; j<strlen(replacementWord); j++, k++)
		resultStr[k] = replacementWord[j];
	for (i = shortestWordEnd+1; i<strlen(str); i++, k++)
		resultStr[k] = str[i];

	// displaying result string
	std::cout << "result string is \"";
	for (i=0; i<strlen(resultStr); i++)
		std::cout << resultStr[i];
	std::cout << "\"" << std::endl;
}
вывод только переделай, чтобы был совместим с Си.

Последний раз редактировалось v01d; 27.12.2009 в 18:59.
v01d вне форума Ответить с цитированием
Старый 28.12.2009, 00:21   #8
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
1. определить минимальное слово и его позицию
2. скопировать в новый буфер все, что слева этого слова
3. скопировать в буфер новое слово
4. скопировать в буфер все, что справа этого слова
Абсолютно то же самое хотел сказать, только пришел я поздновато
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление элементов строки s2 из строки s1 Ueshua Общие вопросы C/C++ 4 20.12.2009 13:06
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10
Строки. Как вывести часть строки? Anfall Общие вопросы Delphi 7 26.02.2009 09:10
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45