Форум программистов, компьютерный форум CyberForum.ru

Запись нескольких слов в одну строку - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
nutius
0 / 0 / 0
Регистрация: 01.06.2011
Сообщений: 60
19.03.2013, 20:34     Запись нескольких слов в одну строку #1
Подскажите, пожалуйста, как записать несколько слов в одну строку....мне необходимо, чтобы высчитывалось количество гласных букв в каждом слове...а у меня только подсчитывается количество гласных в первом слове (хотя я ввожу несколько строк..)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstring>
#include <conio.h>
int main(){
    int n;
    std::cin >> n;
    char *str = new char[n];
    //std::cin.getline (str,n);
    char vowels[]="eyuioajEYUIOAJ";
    char consonants[]="qwrtpsdfghklzxcvbnmQWRTPFGHKLZXCVBNM"; 
    unsigned v=0,c=0;
    std::cin >> str;
    for (int i=0; str[i]; i++)
        if (strchr(vowels,str[i])) v++; else
        if (strchr(consonants,str[i])) c++;
    std::cout << "count of vowels - " << v << "\ncount of consonants - " << c << std::endl;
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2013, 20:34     Запись нескольких слов в одну строку
Посмотрите здесь:

C++ Объединение нескольких массивов в одну область памяти Union и прямое обращение по имени
C++ Запись всех повторяющихся слов в новый массив слов
Ввести строку из нескольких слов и найти в ней заданное слово C++
Ввести в структуру в виде указателя строку из нескольких слов C++
Вывод нескольких найденных значений в одну строку C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
19.03.2013, 20:39     Запись нескольких слов в одну строку #2
C++
1
2
    char string[256];
    gets(string);
fjay69
 Аватар для fjay69
85 / 85 / 1
Регистрация: 26.10.2012
Сообщений: 248
19.03.2013, 20:40     Запись нескольких слов в одну строку #3
cin записывает данные до первого пробела. Нужно использовать cin.getline(str,N), где N - длина строки (я думаю, 512 символов вам хватит).
nutius
0 / 0 / 0
Регистрация: 01.06.2011
Сообщений: 60
19.03.2013, 20:48  [ТС]     Запись нескольких слов в одну строку #4
Цитата Сообщение от fjay69 Посмотреть сообщение
cin записывает данные до первого пробела. Нужно использовать cin.getline(str,N), где N - длина строки (я думаю, 512 символов вам хватит).
я когда дописала строку cin.getline(str,N)...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstring>
#include <conio.h>
int main(){
    int n;
    std::cin >> n;
    char *str = new char[n];
    std::cin.getline (str,512);
    char vowels[]="eyuioajEYUIOAJ";
    char consonants[]="qwrtpsdfghklzxcvbnmQWRTPFGHKLZXCVBNM"; 
    unsigned v=0,c=0;
    std::cin >> str;
    for (int i=0; str[i]; i++)
        if (strchr(vowels,str[i])) v++; else
        if (strchr(consonants,str[i])) c++;
    std::cout << "count of vowels - " << v << "\ncount of consonants - " << c << std::endl;
    getch();
    return 0;
}
Все-равно подсчитывает только в первом слове гласные...что не так?
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
19.03.2013, 21:09     Запись нескольких слов в одну строку #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string.h>
#include <conio.h>
int main()
{
    char str[256];
    gets(str);
    char vowels[]="eyuioajEYUIOAJ";
    char consonants[]="qwrtpsdfghklzxcvbnmQWRTPFGHKLZXCVBNM";
    unsigned v=0,c=0;
    for (int i=0; str[i]; i++)
        if (strchr(vowels,str[i])) v++; else
        if (strchr(consonants,str[i])) c++;
    std::cout << "count of vowels - " << v << "\ncount of consonants - " << c << std::endl;
    getch();
    return 0;
}
Добавлено через 4 минуты
nutius, внимательней нужно быть

Цитата Сообщение от nutius Посмотреть сообщение
std::cin.getline (str,512);
тут то оно все хорошо, но после этого
Цитата Сообщение от nutius Посмотреть сообщение
std::cin >> str;
все портит)
Yandex
Объявления
19.03.2013, 21:09     Запись нескольких слов в одну строку
Ответ Создать тему
Опции темы

Текущее время: 05:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru