1

Тема: Робота з символьними рядками с++.)

Будь ласка підкажіть що я не так роблю.) Програма тільки виконує умову(в)...
З клавіатури вводиться текстовий рядок. Розробити програму, яка реалізує вказані дії.
а) підраховує кількість слів у тексті, які починаються з голосної літери; 
б) виводить на екран всі слова, що мають непарну кількість приголосних літер;
в) видаляє всі числа з тексту.
Ось мій код...

#include<iostream>
#include<ctype.h>
#include<string.h>
#include<conio.h>
int main()
{
    char r[2048];
    printf("vvedit riadok1:");
    gets(r);
    for(int i=0;i<strlen(r);i++)
    {
        if( isalpha(r[i]) ){ 
            printf("%c", r[i] ); 
        }
    }
using namespace std;
    char sym[2048];
    char sym1[]="q";
    printf("\nvvedit riadok 2:");
    scanf_s("%s",&sym);
    int k=0;
    while (strcmp(sym,sym1))
    {
        if (isalpha(sym[0]))
        {
            if (sym[0] =='a'||sym[0] == 'e' 
                || sym[0] == 'y'|| sym[0] == 'u'
                || sym[0] == 'i' || sym[0] == 'o')
                k++;
        }
        cin >> sym;
        if (isalpha(sym[0]))
        {
            if (sym[0] !='a'||sym[0] != 'e' 
                || sym[0] != 'y'|| sym[0] != 'u'
                || sym[0] != 'i' || sym[0] != 'o')
                printf("\nslova z prugolosnimi: %s",sym);
        }
        cin >> sym;
    };
        printf("\nk-st sliw z golosnimi:%d",k);
    _getch();
    return 0;
}

2 Востаннє редагувалося #Sparta (30.05.2016 21:31:47)

Re: Робота з символьними рядками с++.)

using namespace std;

це слід оголосити одразу після

#include

- ів.
Навіщо ввід ще одного рядка , якщо , згідно умови, планується робота з одним рядком?
А взагалі, вибачте, але це щось взагалі не те. В вас є змінна k , яка , як я зрозумів, мала б рахувати кількість голосних літер у слові. (Або ж це мала бути змінна , яка біжить по Вашому рядку. Бо Ви у даному циклі перевіряєте лише перший символ.)
Скажіть чесно код Ваш?
Ця штука 

printf("%c", r[i] );

виведе лише 1 символ...
Ну і наостанок - якщо Ви користуєтесь printf/scanf , то заберіть cout/cin(або ж навпаки).

Студент НУ "ЛП".
Подякували: leofun011

3 Востаннє редагувалося sn7770666k (31.05.2016 19:25:42)

Re: Робота з символьними рядками с++.)

#Sparta написав:
using namespace std;

це слід оголосити одразу після

#include

- ів.
Навіщо ввід ще одного рядка , якщо , згідно умови, планується робота з одним рядком?
А взагалі, вибачте, але це щось взагалі не те. В вас є змінна k , яка , як я зрозумів, мала б рахувати кількість голосних літер у слові. (Або ж це мала бути змінна , яка біжить по Вашому рядку. Бо Ви у даному циклі перевіряєте лише перший символ.)
Скажіть чесно код Ваш?
Ця штука 

printf("%c", r[i] );

виведе лише 1 символ...
Ну і наостанок - якщо Ви користуєтесь printf/scanf , то заберіть cout/cin(або ж навпаки).

так це мій код..)я ж і хотів запитати що в мене не так.. :-X .) але вже зрозумів помилки і переписав це все...але всеодно не міг вивести слова які мають непарну кількість приголосних букв..) *FACEPALM*

4

Re: Робота з символьними рядками с++.)

sn7770666k написав:

так це мій код..)я ж і хотів запитати що в мене не так.. :-X .) але вже зрозумів помилки і переписав це все...але всеодно не міг вивести слова які мають непарну кількість приголосних букв..) *FACEPALM*

І чого ви очікуєте від нас? Ми не телепати.

5

Re: Робота з символьними рядками с++.)

koala написав:
sn7770666k написав:

так це мій код..)я ж і хотів запитати що в мене не так.. :-X .) але вже зрозумів помилки і переписав це все...але всеодно не міг вивести слова які мають непарну кількість приголосних букв..) *FACEPALM*

І чого ви очікуєте від нас? Ми не телепати.

вже нічого не потрібно..) *THUMBSUP*