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

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

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

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

24.07.2014, 23:56. Просмотров 306. Ответов 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);
}
Сломал голову. Поясните как это работает?

С уважением Виктор.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2014, 23:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как работает функции подсчёта символов в строке (C++):

Подсчет символов в строке, как работает? ( С++ ) - C++
Доброго времени суток! Помогите начинающему: Есть код который читает символы - #include <iostream> int main () { int...

Сортировка символов в строке, виртуальные функции - C++
Всем привет! Помогите пожалуйста, нужно написать лабу на С++: базовый класс "строки" с виртуальной функцией сортировки строки с выводом...

Функция подсчёта всех цифр в строке - C++
Как написать функцию которая считает сумму всех цифр в строке?

Программа подсчёта количества символов, букв, слов и предожений - C++
Нужно написать программу 1) Имя передаётся через командную строку 2) Программа должна подсчитывать количество: 1) символов; 2) символов...

Найти количество цифр в строке символов, используя функции - C++
НА ТУРБО СИ ИЛИ НА ДЕВС++ Желательно не с cout а с printf scanf HELP #2.Найти количество цифр в строке символов, используя функции.

НЕ работает программа подсчёта! - C++
Код писался в MVS 2012 ultimate суть программы состоит в том,чтобы ввести количество пенсо,шилингов, фунтов и пересчитать их с выводом...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
DrOffset
7152 / 4293 / 968
Регистрация: 30.01.2014
Сообщений: 7,094
25.07.2014, 00:18 #2
maltsevvv,
'\0' - это символ с кодом 0. В C++ выражение в while(*p) приводится к bool, то есть в случае, если в *p - ноль, то он приведется к false и мы выйдем из цикла. Это проверка на конец строки. В другом цикле аналогично.
1
zer0mail
2334 / 1960 / 192
Регистрация: 03.07.2012
Сообщений: 7,029
Записей в блоге: 1
25.07.2014, 00:19 #3
Вопрос на уровне "почему 7*8=56?" В каком месте они не должны работать и почему?
Возьми строку "12" и по шагам опиши, какие значения переменных будут на каждом шаге.
0
maltsevvv
0 / 0 / 0
Регистрация: 03.07.2014
Сообщений: 14
25.07.2014, 00:26  [ТС] #4
DrOffset, спасибо.

Тема закрыта.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.07.2014, 00:26
Привет! Вот еще темы с ответами:

Написать программу подсчёта количества пробелов в заданной строке - C++
как сделать проверку строки на пробелы?

Функции для подсчёта количества слов в списке - C++
Помогите в решении задачи по С++ нужно написать функции для подсчёта количества слов в списке: а) начинающихся и оканчивающихся одной и...

Есть двумерный массив символов, в каждой строке находится номер, мне надо к каждой строке добавить "8029" как это сделать? - C++
Есть двумерный массив символов, в каждой строке находится номер, мне надо к каждой строке добавить "8029" как это сделать? Есть функция...

Создать шаблон функции для подсчёта количества отрицательных элементов матриц - C++
Создать шаблон функции для подсчёта количества отрицательных элементов матрицы A.Вызвать шаблон функции для матриц различного типа. ...


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

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

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