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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
maltsevvv
0 / 0 / 0
Регистрация: 03.07.2014
Сообщений: 13
#1

Как работает функции подсчёта символов в строке - C++

24.07.2014, 23:56. Просмотров 280. Ответов 3
Метки нет (Все метки)

Раньше программировал на VB. Сейчас изучаю С++.
Встретил в интернете эти функции подсчёта симолов в строке.
С первой всё понятно. Перебираем символы пока не встретим '\0'.
C++
1
2
3
4
5
int strlen(char s[]){
    int length = 0;
    for (; s[length] != '\0'; length++);
    return (length);
}
Но почему работают две эти?
C++
1
2
3
4
5
int strlen(char *s){
    int length;
    for (length = 0; *s; length++, s++);
    return length;
}
C++
1
2
3
4
5
int strlen(char *s){
    char *p = s;
    while (*p) p++;
    return (p - s);
}
Сломал голову. Поясните как это работает?

С уважением Виктор.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2014, 23:56     Как работает функции подсчёта символов в строке
Посмотрите здесь:

C++ Функция подсчёта всех цифр в строке
Сортировка символов в строке, виртуальные функции C++
НЕ работает программа подсчёта! C++
Подсчет символов в строке, как работает? ( С++ ) C++
C++ Найти количество цифр в строке символов, используя функции
C++ Функции для подсчёта количества слов в списке
C++ Программа подсчёта количества символов, букв, слов и предожений
C++ Как правильно можно узнать количество хранимых в строке символов?
C++ Создать шаблон функции для подсчёта количества отрицательных элементов матриц
C++ Написать программу подсчёта количества пробелов в заданной строке
Как в строке удалить указанное количество символов, начиная с заданной позиции? C++
C++ Как найти количество символов в строке до определённого знака?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
6820 / 4031 / 924
Регистрация: 30.01.2014
Сообщений: 6,847
25.07.2014, 00:18     Как работает функции подсчёта символов в строке #2
maltsevvv,
'\0' - это символ с кодом 0. В C++ выражение в while(*p) приводится к bool, то есть в случае, если в *p - ноль, то он приведется к false и мы выйдем из цикла. Это проверка на конец строки. В другом цикле аналогично.
zer0mail
2312 / 1938 / 192
Регистрация: 03.07.2012
Сообщений: 6,939
Записей в блоге: 1
25.07.2014, 00:19     Как работает функции подсчёта символов в строке #3
Вопрос на уровне "почему 7*8=56?" В каком месте они не должны работать и почему?
Возьми строку "12" и по шагам опиши, какие значения переменных будут на каждом шаге.
maltsevvv
0 / 0 / 0
Регистрация: 03.07.2014
Сообщений: 13
25.07.2014, 00:26  [ТС]     Как работает функции подсчёта символов в строке #4
DrOffset, спасибо.

Тема закрыта.
Yandex
Объявления
25.07.2014, 00:26     Как работает функции подсчёта символов в строке
Ответ Создать тему
Опции темы

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