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

Не понятно как работают функции - C++

Восстановить пароль Регистрация
 
kowandser
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 50
19.11.2010, 01:14     Не понятно как работают функции #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
bool isstrprint (const char s[])
    {
        int i = -1, ls = strlen(s);
        bool rc = true;
        if (s[0] != 0x00)
        {
            while (i <= ls && isprint((int)((unsigned char) s[++i])) > 0);
            rc = (i == ls)?true:false;
        };
        return rc;
    }
    
bool isstralpha (const char s[])
    {
        int i = -1, ls = strlen(s);
        bool rc = true;
        if (s[0] != 0x00)
        {
            while (i <= ls && isalpha((int)((unsigned char) s[++i])) > 0);
            rc = (i == ls)?true:false;
        };
        return rc;
    }
Объясните пожалуйста, как работают эти функции. В частности, что за переменные isprint и isalpha и непонятно, что происходит внутри while?
Заранее спасибо...

Добавлено через 39 минут
Да ... необходимо подключение <locale> для этих переменных
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2010, 01:14     Не понятно как работают функции
Посмотрите здесь:

C++ Как работают эти 2 функции
как i двигается понятно но вот не понятно как это делает j ? C++
C++ как работают эти 4 функции
Метод работает как то не понятно C++
C++ Объясните, как в данном примере работают виртуальные функции?
C++ Виртуальные функции, таблицы виртуальных методов, как они работают?
C++ Не понятно как прочитать
C++ Как работают функции fwrite и fread

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
volovzi
266 / 168 / 8
Регистрация: 14.03.2010
Сообщений: 501
19.11.2010, 01:48     Не понятно как работают функции #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <cctype>
 
bool isstralpha (const char * s) {
    int length = strlen(s);
    
    if (length != 0) {
        for (int i = 0; i < length; ++i)
                        if (!isalpha(s[i])) return false;
    
        return true;
    } else return false;
}
Так понятнее?
"isprint" и "isalpha" — функции библиотеки "ctype". Первая проверяет, является ли символ печатным, а вторая — является ли символ буквой. Подробнее см. в документации.
Соответственно, функции "isstrprint" и "isstralpha" сделаны по аналогии, но только проверяют уже не один символ, а всю строку.

P.S. Если язык действительно Си++, а не Си, то советую использовать не массив чаров, а std::string.
kowandser
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 50
19.11.2010, 13:11  [ТС]     Не понятно как работают функции #3
спасибо
Yandex
Объявления
19.11.2010, 13:11     Не понятно как работают функции
Ответ Создать тему
Опции темы

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