Помогите написать программу на Си
Задана последовательность, слова в которой разделены запятой, после последнего слова - точка. Напечатать эту же последовательность, но удалив из нее повторные вхождения слов.
Код:
#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;
}
#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;
}