Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > С++ строки


Автор: Fedor1989 27.12.2007, 08:40
Помогите написать лабу.
Дана строка символов.распечатать слова отличные от последнего оставив в каждом слове только первые вхождения каждой буквы.
Например:
дана строка:"Vesna nastala ptici prileteli"
на экран должен вывести:
"Vesna nastl ptic"
вот что получилось наваять но только на экран она ничего не выводит где ошибка не могу разобраться
Код

  
#include <stdio.h>   
#include <string.h>   
#include <stdlib.h>   
  
  
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");   
       
    return 0;   
}  




Автор: baldina 27.12.2007, 10:41
вот это
Код

strstr(" .,!?:;"/*разделители*/,st+i);

странно. видимо хотел
Код

strcspn(st+i, " .,!?:;")
?

Автор: Fedor1989 27.12.2007, 10:54
да я просто описался.
[quote]
странно. видимо хотелкод C++
1:
        strcspn(st+i, " .,!?:;")



?
Цитата



незнаю в чем дело.Эта прога ничего не выводит.
фик ее знает работать не хочет


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)