Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
artur31154
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 79
1

Не получается подсчитать количество слов

24.02.2019, 18:00. Просмотров 162. Ответов 1
Метки си (Все метки)

Не получается подсчитать количество слов в каждой строке+ к этому слов в каждой строке должно быть как минимум 2 и не больше 20
Когда запускаешь программу, то дальше ввода слов не уходит.
Вот код main.c
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
#include"WorkWithStroka.h"
#define MAXSTR 2
#define MAXLENGTH 129
int main()
{
    system("chcp 1251");
    system("CLS");
    char arrStr[MAXSTR][MAXLENGTH];
    printf("Ââåäèòå ñòðîêè:\n");
    int valueStr = inputStr(arrStr); 
    int countWord=countWords(arrStr[MAXLENGTH]);
    printf("Êîëè÷åñòâî ñëîâ:%d", countWords);
    printf("Âûâîäèì ñòðîêè ГЁ êîëè÷åñòâî ñîãëГ*Г±Г*ûõ Гў ГЄГ*æäîé ГЁГ§ Г*ГЁГµ:\n");
    printStr(arrStr,valueStr);      
    return 0;
}
Вот WorkWithStroka.c,функция по подсчету слов countWords()
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include<stdio.h>
#include<stdlib.h>
#include<locale.h>
#include<string.h>
#include "WorkWithStroka.h"
#define MAXSTR 2
#define MAXLENGTH 129
int inputStr(char arrStr[MAXSTR][MAXLENGTH])
{
    int i;
    int valueStr = 0;
    for (i = 0; i < MAXSTR; i++)
    {
        char* s = NULL;
        fgets(&arrStr[i][0], sizeof(arrStr[i]), stdin);
        s = strchr(&arrStr[i][0], '\n');
        if (s != NULL)
        *s = '\0';
        valueStr++;
    }
    return valueStr;
}
int valueOfConsonant(char str[])
{
    char arrConsonant[] = "ÀÓÎÛÈÝßÞ¨ÅГ*óîûèýÿþ¸å";
    int countConsonant = 0;
    int lenStr = strlen(str);
    int i;
    for (i = 0; i < lenStr; i++)
    {
        if (memchr(arrConsonant, str[i], 41) != NULL)
        {
            countConsonant++;
        }
    }
    return countConsonant;
}
void printStr(char arrStr[MAXSTR][MAXLENGTH],int valueStr)
{
    int i;
    for (i= 0; i < valueStr; i++) 
    {
        printf("%s %d\n", arrStr[i], valueOfConsonant(arrStr[i]));
    }
}
int countWords(char* str)
{
    char s[MAXLENGTH];
    strcpy(s,str);
    int k=0;
    char* pstr=strtok(s," .,-\t");
    while(pstr!=NULL)
    {
        pstr=strtok(NULL," .,-\t");
        k++;
    }
    return k;
}
Добавлено через 3 часа 8 минут
Все, ответ не требуется.Сделал сам
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2019, 18:00
Ответы с готовыми решениями:

Текст состоит из слов, разделенных пробелами. Подсчитать количество слов, начинающихся с буквы К
Дан текст произвольной длины, оканчивающий точкой. Текст состоит из слов, разделенных проблемами....

Подсчитать количество слов в тексте,посчитать количество символов нижнего регистра
Создала программу, которая считает слова, начинающихся и заканчивающиеся одной буквой, но нужно...

Подсчитать количество слов, содержащих заданное количество согласных букв
Построить Trie-дерево. Подсчитать количество слов, содержащих заданное количество ...

Подсчитать количество слов
добрый вечер можете объяснить как он считает на этом примере #include &lt;stdio.h&gt; /* обрезает...

Подсчитать количество слов(строки) на С
Подсчитать количество слов, начинающихся на большую букву и содержащих хотя бы один арифметический...

1
easybudda
Модератор
Эксперт JavaЭксперт CЭксперт С++
10297 / 6179 / 1555
Регистрация: 25.07.2009
Сообщений: 11,762
25.02.2019, 00:58 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
#include <stdio.h>
#include <ctype.h>
 
#define is_separator(c) ( isspace(c) || ispunct(c) )
 
int words_count(const char * s) {
    int in_word = 0, count = 0;
 
    for ( ; *s; ++s ) {
        if ( is_separator(*s) )
            in_word = 0;
        else if ( ! in_word )
            count += ++in_word;
    }
 
    return count;
}
 
int main(void) {
    char buf[BUFSIZ];
 
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
        printf("%d words.\n", words_count(buf));
    
    return 0;
}
Код
[andrew@easybook string]$ gcc -Wall words_count.c 
[andrew@easybook string]$ ./a.out 
String: blah blah blah
3 words.
String: one. TWO, three! 
3 words.
String:
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2019, 00:58

Подсчитать количество слов в строке
Дана строка символов, состоящая из нулей, единиц и пробелов.Группы нулей и единиц, разделенные...

Подсчитать количество слов, начинающихся на 'A'
Доброго времени суток. Подскажите пожалуйста решение такой проблемы. Дана строка ,подсчитать кол-во...

Подсчитать количество слов в строке
Помогите перевести программу с паскаля на си. Вот задание для удобства. Дано натуральное число n...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru