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

количесво слов из 4 букв - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
vikaplys
0 / 0 / 1
Регистрация: 19.11.2009
Сообщений: 29
11.05.2010, 22:37     количесво слов из 4 букв #1
Необходимо посчитать слова состоящие из 4 букв в строке используя дружественные функции.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <vcl.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <iostream.h>
 
int main()
{
char s[255];
cout<<"Vvedite stroky: ";
gets(s);
unsigned int a,i;
a=0;
for (i=0;i<strlen(s)-1;i++)
 
 if ((s[i]==' ') && (s[i+1]!=' ') )
  a=a+1;
if (s[0]!=' ')
    a=a+1;
cout<<"V vedenoj stroke slov: "<<a;
getch();
}
количество слов считает, а вот как сделать проверку на количество букв не знаю. Помогите кто может.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VtaMC
Просто Веталь
 Аватар для VtaMC
159 / 99 / 5
Регистрация: 11.05.2009
Сообщений: 628
11.05.2010, 22:50     количесво слов из 4 букв #2
Вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <vcl.h>
#include <tchar.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <iostream.h>
 
int main()
{
    char s[255];
    cout<<"Vvedite stroky: ";
    gets(s);
    unsigned int a,i, j = 0;
    a=0;
    for (i = 0; i < strlen(s); i++)
    {
        if ((s[i]==' ') && (s[i+1]!=' ') )
            a=a+1;
        if(s[i] >= 'a' && s[i] <= 'z')
            j++;
    }
    if (s[0]!=' ')
        a=a+1;
    cout<<"V vedenoj stroke slov: " << a << endl;
    cout << "Kollichestrvo bukv: " << j << endl;
    getch();
}
vikaplys
0 / 0 / 1
Регистрация: 19.11.2009
Сообщений: 29
11.05.2010, 23:16  [ТС]     количесво слов из 4 букв #3
Вы неправильно поняли. Есть строка текста в которой нужно посчитать количество слов длиной в 4 символа, а не длину всей строки.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
11.05.2010, 23:23     количесво слов из 4 букв #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
    
#define MAX_LEN 256
#define SPC " \t\n"
#define CHARS_NEEDED 4
    
int main(void){
    char buf[MAX_LEN], *p;
    size_t cnt;
    
    printf("String: ");
    if ( ! fgets(buf, MAX_LEN, stdin) ){
        perror("fgets");
        exit(1);
    }
    
    cnt = 0;
    for ( p = strtok(buf, SPC); p; p = strtok(NULL, SPC) )
        if ( strlen(p) == CHARS_NEEDED )
            ++cnt;
    
    printf("%d words with length of %d characters\n", cnt, CHARS_NEEDED);
    
    exit(0);
}
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
11.05.2010, 23:25     количесво слов из 4 букв #5
Необходимо посчитать слова состоящие из 4 букв в строке используя дружественные функции.
А дружественные функции здесь зачем?
vikaplys
0 / 0 / 1
Регистрация: 19.11.2009
Сообщений: 29
12.05.2010, 00:08  [ТС]     количесво слов из 4 букв #6
Цитата Сообщение от rangerx Посмотреть сообщение
А дружественные функции здесь зачем?
дружественные функции надо использовать по условию задания.

Можете пояснить этот участок кода.
C++
1
2
3
4
        if ( ! fgets(buf, MAX_LEN, stdin) ){
                perror("fgets");
                exit(1);
        }
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
12.05.2010, 00:17     количесво слов из 4 букв #7
Цитата Сообщение от vikaplys Посмотреть сообщение
Можете пояснить этот участок кода
#include <stdio.h>
char *fgets(char *str, int num, FILE *stream);
Функция fgets() читает из входного потока stream не более num-1 символов и помещает их в массив символов, адресуемый указателем str. Символы читаются до тех пор, пока не будет прочитан символ новой строки или значение EOF, либо пока не будет достигнут заданный предел. По завершении чтения символов сразу же за последним из них размещается нулевой символ. Символ новой строки сохраняется и становится частью массива, адресуемого элементом str.
stdin - стандартный поток ввода (клавиатура).
Блок кода означает следующее: прочитать строку из стандартного ввода. Если не получилось - выругаться и выйти.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
12.05.2010, 00:38     количесво слов из 4 букв #8
дружественные функции надо использовать по условию задания.
И почему вы их не используете в таком случае?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2010, 00:55     количесво слов из 4 букв
Еще ссылки по теме:

C++ STL: Сортировка слов по количеству согласных букв; вывод слов, встречающихся в списке более одного раза
Количество разных слов из n букв C++
C++ Введите с клавиатуры некоторый текст и подсчитать в нем количество слов, букв, цифр,строчных букв, заглавных б

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
vikaplys
0 / 0 / 1
Регистрация: 19.11.2009
Сообщений: 29
12.05.2010, 00:55  [ТС]     количесво слов из 4 букв #9
Цитата Сообщение от rangerx Посмотреть сообщение
И почему вы их не используете в таком случае?
Пока не знаю как, изучаю литературу на эту тему. Если знаете как можно реализовать это, прошу помочь.
Yandex
Объявления
12.05.2010, 00:55     количесво слов из 4 букв
Ответ Создать тему
Опции темы

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