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

Посчитать количество знаков пунктуации во введенной строке - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Является ли граф двудольным??? http://www.cyberforum.ru/cpp-beginners/thread527851.html
Здаствуйте, прошу помочь, очень нужен исходник для программы: Входные данные - количество вершин графа и его ребра. Выход - является ли граф двудольным. Буду признателен если буду комментарии....
C++ Выбранные слова записать в стек, напечатать его содержимое и самое длинное слово Помогите, пожалуйста, написать лабу, алгоритм более менее понятен, но как написать, не знаю.. Из текстового файла выбрать слова, которые создают такую последовательность, что первая буква одного... http://www.cyberforum.ru/cpp-beginners/thread527844.html
C++ Строки
Доброго времени суток уважаемые. Очень нужна помощь с решением поставленной задачи, а задача заключается в следующем: 1. Дана строка, состоящая из групп нулей и единиц, разделенных одним или...
нерекурсивная функция C++
Разработать функцию которая для заданного натурального числа N возвращает количество его делителей.С помощью функции : вывести на экран только те целые числа отрезка у которых количество делителей...
C++ Написать функцию, которая определяет сумму положительных элементов массива целых чисел http://www.cyberforum.ru/cpp-beginners/thread527828.html
Помогите написать программу) 1)Написать функцию, которая определяет сумму положительных элементов массива целых чисел. Параметрами функции являются массив и его размерность. Используя написанную...
C++ Сортировка элементов массива с вычислением адреса! нужна консультация по сортировке элементов массива с вычислением адреса, в чем заключаеться именно аглгоритм данного метода?? В интернете не нашел ничего подобного, можно обяснить на словах, или... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,812
27.03.2012, 01:34
Цитата Сообщение от go Посмотреть сообщение
C
1
2
while ( *s++ ) 
    cnt += !!ispunct(*(s - 1));
Эко вычурно
C
1
2
while ( *s )
    cnt += !!ispunct(*s++);


Оно же с рекурсией
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <ctype.h>
 
size_t puncts_count(const char * s) { return ( *s ) ? !!ispunct(*s) + puncts_count(s+1) : 0; }
 
int main(void){
    char buf[BUFSIZ];
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
        printf("%u puncts.\n", puncts_count(buf));
    
    return 0;
}
Цитата Сообщение от go Посмотреть сообщение
Вы диапазон видели?
А что с ним не так?
Код
~/cpp/strings $ ./puncts_count 
String: :;?!,.
6 puncts.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru