Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> С++ строки 
:(
    Опции темы
Fedor1989
Дата 27.12.2007, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 24.11.2007

Репутация: нет
Всего: нет



Помогите написать лабу.
Дана строка символов.распечатать слова отличные от последнего оставив в каждом слове только первые вхождения каждой буквы.
Например:
дана строка:"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;   
}  




PM MAIL   Вверх
baldina
Дата 27.12.2007, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



вот это
Код

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

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

strcspn(st+i, " .,!?:;")
?
PM MAIL   Вверх
Fedor1989
Дата 27.12.2007, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 24.11.2007

Репутация: нет
Всего: нет



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



?
Цитата



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


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0817 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.