Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Алгоритмы и теория программирования


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

Гаряка Асмик
Статус: Профессор
Рейтинг: 5396
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 2530
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2028
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Алгоритмы и теория программирования

Номер выпуска:124
Дата выхода:21.11.2010, 10:30
Администратор рассылки:Борисыч (Профессор)
Подписчиков / экспертов:397 / 174
Вопросов / ответов:1 / 1

Вопрос № 180759: Здравствуйте эксперты! Помогите написать программу на Си с использованием функций ‘str’: Дана строка, содержащая слова, разделенные 1-м или несколькими разделительными символами (пробелами, табуляторами), в начале строки и в конце строки могут наход...



Вопрос № 180759:

Здравствуйте эксперты! Помогите написать программу на Си с использованием функций ‘str’: Дана строка, содержащая слова, разделенные 1-м или несколькими разделительными символами (пробелами, табуляторами), в начале строки и в конце строки могут находиться разделительные символы. Сформировать новую строку, в которой удалить из каждого слова исходной строки символы, встречающиеся 1-раз. В начале и конце строки не должно быть разделительных символов.

Отправлен: 15.11.2010, 05:55
Вопрос задал: Magma (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает Борисыч (Профессор) :
Здравствуйте, Magma! Приведенная рекурсивная функция (и программа для демонстрации) формирует строку, оставляя только повторяющиеся символы. Попробуйте самостоятельно применить ее в программе, поскольку сами программы выделения слов из строки уже в ответах есть. Положите в мини-форум текст получившейся программы, если будут сложности. Вам полезней - экспертам веселей.
Code::Blocks/GCC.
Код:
#include <stdio.h>
#include <string.h>
void str_make(char s[], char t[]);

int main()
{
char t[40];
char s[40];

gets(t);
strcpy(s,"");
str_make(s,t);
if (strlen(s)>0)
puts(s);
else
pri ntf("Нет повторяющихся значений");

return 0;
}

void str_make(char s[], char t[])
// формирование строки, содержащей только повторяющиеся значения
{
char c[2];
c[1]='\0';
size_t lens = strlen(s);

if (strlen(t)>0)
{
if ( (strchr(s,t[0])!=NULL || strchr(t+1,t[0])!=NULL) )
{
strncpy(c,t,1);
strcat(s, c);
}
str_make(s, t+1);
}
}

Пример выдачи
Код:
Язык_программирования_Си
_рораммироаи_и

Удачи!

Ответ отправил: Борисыч (Профессор)
Ответ отправлен: 20.11.2010, 14:56
Номер ответа: 264218

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 264218 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFPRO.RU, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.23 от 18.11.2010

    В избранное