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

Подсчитать в строке количество слов и букв в каждом слове

12.08.2010, 18:50. Просмотров 998. Ответов 3
Метки нет (Все метки)

Здравствуйте.
Есть программка, которая после ввода строки слов подсчитывает в ней количество слов и букв в каждом слове. Все бы хорошо было, но есть одно НО: если в конце строки не поставить пробел, то программа "не видит" последнее слово и выводит неверный результат. Как это исправить?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
main()
{
    char s[255]="",k[255]="";   
    gets(s);
    int word=0,symbol=0;
    int i;
    for(i=0;s[i]!=0;i++){
        if(s[i]==' '){
            k[symbol]=0;
            printf("%s = %d symbols\n",k,symbol);
            symbol=0;
            word++;
        } else {
            k[symbol++]=s[i];
        }
    }
    printf("\nWords = %d\n",word);
    system("pause");    
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2010, 18:50
Ответы с готовыми решениями:

Подсчитать количество гласных букв в каждом слове предложения (через библиотечную функцию)
решение через библиотечную функцию Ввести с клавиатуры предложение....

Подсчитать количество букв "D" в каждом четном слове
Идея вроде ясна : нужно ввести массив , в него занести строку из слов ,...

Подсчитать количество символов в каждом слове
Доброго времени суток. В общем, нужно ввести текст и подсчитать количество...

Подсчитать количество букв о, м, и к в этом слове
Не могу понять, почему не работает. Помогите. Вроде легко, а все равно не...

Подсчитать количество букв k в последнем слове
Добрый вечер! В С я не бум-бум. Задание следующее:Подсчитать количество букв...

3
Dr_Carmack
3 / 3 / 0
Регистрация: 23.04.2010
Сообщений: 12
12.08.2010, 21:18 2
Проблема вот в чем: ты начинаешь посчет слов и символов в нем как только встречаешь символ пробела. но предложение ты начинаешь не с пробела, а значит первое слово не учитывается. Инициализируй переменную word в единицу.

Добавлено через 39 минут
наврал) и не успел исправления внести)

ты делаешь вывод после проверки на наличие в переменной s[i] пробела. но когда последнее слово записывается в массив k, не наступает условия после которого последнее слово должно выводиться - наступает выход из цикла, ибо нету больше переменных в строке.
просто напиши
C
1
printf("%s = %d symbols\n",k,symbol);
после цикла и увидишь последнее слово с количеством букв
2
_User_
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 50
13.08.2010, 08:47  [ТС] 3
Спасибо огромное, теперь все работает
0
easybudda
Модератор
Эксперт CЭксперт С++
10208 / 6107 / 1536
Регистрация: 25.07.2009
Сообщений: 11,607
13.08.2010, 12:05 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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define DELIM " .,:;!?\t\n"
 
int main(void){
    char buf[BUFSIZ], * p;
    int cnt;
    
    printf("String: ");
    if ( ! fgets(buf, BUFSIZ, stdin) ){
        perror("fgets");
        exit(EXIT_FAILURE);
    }
    
    for ( cnt = 0, p = strtok(buf, DELIM); p; ++cnt, p = strtok(NULL, DELIM) )
        printf("%s : %d letters\n", p, strlen(p));
    
    printf("\n%d words.\n", cnt);
    
    exit(EXIT_SUCCESS);
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2010, 12:05

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

Подсчитать количество букв «а» в последнем слове заданной строки
Дана строка. Группы символов, разделенные пробелами (одним или несколькими) и...

Подсчитать количество букв в слове текста с заданным номером
#include &lt;stdio.h&gt; #define k 81 int n,z; int StrSpn(char *s, int n){ ...


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

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

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