Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Cлова не содержащие гласных букв


Автор: Генадий 27.4.2010, 20:10
Здравствуйте, не могу понять почему не работает эта программа, подскажите что мне нужно изменить.
Программа компилируется, ошибок не выдаёт, после ввода слов и нажатия Enter ничего не происходит.

Условие задачи такое:
Задана строка, состоящая из символов. Символы объединяются в слова. Слова друг от друга отделяются  одним или несколькими пробелами. В конце текста ставится точка. Текст содержит не  более 255 символов. Выполнить ввод строки, используя функцию Gets(s)  и обработку строки в соответствии со своим вариантом.
Напечатать все слова, которые не содержат гласных букв.


Код

#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cstring>
using namespace std;
int main(int argc, char *argv[])
{ 
    const int size = 255;
    char *clas = "qwrtpsdfghklzxcvbnmQWRTPSDFGHKLZXCVBNM\
цкнгшщзхфвпрлджчсмтбЦКНГШЩЗХФВПРЛДЖЧСМТБ";
    char str[size],
        *c = str, 
        *ch = NULL;
    gets( str );
    puts("\n");
    char *end = str + strlen( str );
    while( c < end ){
        c = strtok( c, " " );
        ch = strpbrk( c, clas );
        if ( ch == NULL ) 
        cout<<"s ", c ;
        c += strlen( c ) +1;
    }
    cin.get();
    return 0;
}


Автор: toxx 27.4.2010, 21:32
Код

#include<cstdlib>
#include<cstdio>
#include<cstring>
#include<conio.h>
using namespace std;
int main(int argc, char *argv[])
{ 
    const int size = 255;
    char *clas = "ay";
    char str[size],
        *c = str, 
        *ch = NULL;
    gets( str );
    puts("\n");
    char *end = str + strlen( str );
    while( c < end ){
        c = strtok( c, " " );
        ch = strpbrk( c, clas );
        if ( ch == NULL ) puts(c);
        c += strlen( c ) +1;
    }
    getch();
    return 0;
}


Не мешайте  средства ввода\вывода в стиле с\с++ т.к. если их использовать вместе бывают такие вот проблемы как у вас. 
Используйте либо cin\cout или puts\gets.

UPD: простите не то скопировал, заменил.Посоветовал бы добавить в char *clas="ay..." гласные буквы.

Автор: Генадий 27.4.2010, 21:48
toxx, благодарю за помощь  smile 

Автор: toxx 27.4.2010, 21:49
Генадий
Проверьте еще раз я поправил пост =)

Автор: Генадий 27.4.2010, 21:57
Спасибо ещё раз, за помощь. smile 

Автор: djamshud 27.4.2010, 23:10
А завтра мы попадаем в мир многобайтовых кодировок и весь этот код идет в баню, и пишется новый.

//А все продвинутое человечество уже там (в мире).

ЗЫ. Это касается и Геннадия, и toxx-а.

Автор: toxx 27.4.2010, 23:21
djamshud
мне до многобайтовых кодировок, как до Китая=)
дай бог освоить char и string =)

Вот только объясните почему в вузах не дают юникод и т.д.?
Чему учат, то и изучаем =)

Автор: djamshud 27.4.2010, 23:24
Учиться - задача студента. ВУЗ в этом только помогает.

Автор: toxx 27.4.2010, 23:29
djamshud
Я итак изучаю больше чем мне дают в разы, я сейчас должен был уметь только чегото делать с классами( пару методов добавлять, да конструктор писать).Но мне интересно ковыряться в этой всякой всячине и я ковыряюсь во всем, что попадается под руку.
Говоря о графике ничего не дают, ну разве что <graphics.h> который уже устарел давно( но тем не менее я уже пощупал winapi,Qt), думаю в скором времени я изучу и юникод =)

Надеюсь я в правильном направлении развиваюсь?

Автор: djamshud 27.4.2010, 23:40
toxx, вашя тяга к знаниям похвальна, но не надо передо мной оправдываться. Я лишь заметил, что отмазка "нам этого не давали" может и прокатит на экзамене, но не в жизни. Вуз и так дает вам много фундаментальных (не совсем то слово, ну да ладно) знаний, а прикладывать их нужно учиться самому. И graphics.h тоже лишней не будет кстати.

Автор: toxx 27.4.2010, 23:50
djamshud
Эхх плохо я употребил это выражение "нам не давали", самому тоже нравится =)
ну с встроенной графикой я знаком по паскалю, думаю ничем она не отличается в си( блин опять похоже на отмазки).
Думаю тут будет уместно нужно развивать те знания которые даёт вуз, т.к. если их не развивать(т.к. как применять будем мы эти знания зависит от нас), то подавляющее большинство так и будет сидеть на пузырьковой сортировке( ну для сравнения, так скажем). Я еще общаюсь на этом форуме, т.к. тут можно пообщаться с такими знающими людьми, как например вы и научиться(освоить) мелочам( которых довольно много), пробую отвечать на вопросы.
Поэтому дойдут руки и до сетей и до БД, юникода надеюсь=) 

Автор: scalosale 8.2.2023, 15:51
Модератор: Сообщение скрыто.

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