Дана строка символов. Распечатать слова отличные от последнего оставив в каждом слове только первые вхождения каждой буквы
Категория: C/C++
2011-12-24 18:34:56
Например: дана строка:"Vesna nastala ptici prileteli", на экран должен вывести: "Vesna nastl ptic"
code: #cpp
#include#include #include #include // 1е именение void print_word(char* w) { int i,j; bool p; for(i = 0; i < strlen(w); i++) { p = true; for(j = i - 1;j >= 0;j--) if(w[i] == w[j]) {p = false; break;} if(p) printf("%c",w[i]); } printf(" "); } void get_last_w(const char* st, char* w) { int i; while(1) { for(i = 0;st[i] && !strstr(" .,!?:;"/*разделители*/,st+i);i++); strncpy(w, st, i); w[i] = 0; if(!st[i]) break; st += (i + 1); } } int main() { char string[512], lw[64], w[64]; char *st; int i = 0; printf("Enter string:"); scanf("%500s", string); get_last_w(string, &lw[0]); printf("\n"); st = &string[0]; while(1) { for(i = 0;st[i] && !strstr(" .,!?:;"/*разделители*/,st+i);i++); strncpy(w, st, i); w[i] = 0; if(strcmp(w,lw)) print_word(w); if(!st[i]) break; st+=(i+1); } printf("\n"); getch();// 2е именение return 0; }
автор: theos
Поделиться: