Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: 6301
Последний выпуск: 19.06.2015

Помогите написать программу на Си

86K
15 декабря 2012 года
Tim Grey
2 / / 15.12.2012
Задана последовательность, слова в которой разделены запятой, после последнего слова - точка. Напечатать эту же последовательность, но удалив из нее повторные вхождения слов.
11K
15 декабря 2012 года
xAtom
65 / / 17.01.2011
Это ведь очень просто.

Код:
#include <stdio.h>
#include <string.h>
#include <ctype.h>


char* unique_words(char* s) {
   char* t = s;
   char* i, *p, c;
   while(*s) {
     for(p = s; *p && isalpha(*p); *p++);
     if((p - s) > 0) {
        c = *p;
       *p = '\0';
       for(i = p + 1; (i = strstr(i, s)) != NULL; ) {
          if(ispunct(*(i + (p - s))))
             strcpy(i, i + (p - s) + 1);
          else
             i += (p - s);
       }
       *p = c;
        s = p;
     } else
         *s++;
   }
   return t;
}


int main(void)
{
   char s[] = "Cisco,Novell,Dell,Novell,Lotus,Dell,Cisco.";
   printf("src str: %s\n", s);
   printf("dst str: %s\n", unique_words(s));
   return 0;
}

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог