Прототип функции ispunct:
int ispunct( int character );
Заголовочный файл
| Название | Язык |
|---|---|
| ctupe.h | С |
| cctupe | С++ |
Описание
Функция ispunct проверяет свой аргумент, является ли его значение символом пунктуации. Для этой функции, знак пунктуации — это любой графический символ (как в isgraph) и не буквенно-цифровые символы (как в isalnum).
Подробно ознакомиться с возвращаемыми результатами функций, для каждого символа стандартного набора символов ASСII вы можете в библиотеке <cctype>.
В С++ локализованная версия функции ispunct определена в заголовочном файле <locale>.
Параметры:
- character
Символ для проверки, передаётся в функцию как значение типаint, илиEOF.
Возвращаемое значение
Значение, отличное от нуля (т.е. истинно), если аргумент функции — это знак пунктуации.
Ноль (т.е. ложь), в противном случае.
Пример: исходный код программы
// пример использования функции ispunct
#include <iostream> // для оператора cout
#include <cctype> // для функции ispunct
int main ()
{
int ix = 0, // индекс символов в строке
ctr = 0; // счетчик символов пунктуации
char str[] = "Привет, добро пожаловать!";
while (str[ix]) // пока не конец чтроки
{
if ( ispunct(str[ix]) ) ctr++; // если текущий символ - символ пунктуации
ix++; // инкремент интдекса
}
std::cout << "Предложение содержит " << ctr << " символа пунктуации" << std::endl;
return 0;
}
Пример работы программы
CppStudio.com
Предложение содержит 2 символа пунктуации
Комментарии
DESergik
Пример программы выдает ошибку «expression (unsigned)(c+1) = 256″. Поискав в интернете выяснил, что проблема заключается в строчке str[] на русском языке. Чтобы исправить данную ошибку необходимо использовать строчку на английском или добавить перед char «unsigned»: