Написать функцию на Си, которая бы определяла длину вводимой строки - C (СИ)
Формулировка задачи:
Всем привет. Хотелось бы получить помощь, человеческую с объяснением. Суть вопроса - написать функцию на Си, которая бы определяла длину вводимой строки. Поискал, почитал, но так и не понял, может кто-нибудь помочь и написать такую функцию с объяснениями? Спасибо заранее.
Решение задачи: «Написать функцию на Си, которая бы определяла длину вводимой строки»
textual
Листинг программы
unsigned str_length (const char * const str) { short x = 1; char * ptr = (char*) &x; unsigned res = 0; if (ptr[0] == 1) res = strchr((char*)str, 0) - (char*)str; else res = (char*)str - strchr((char*)str, 0); return res; }
Объяснение кода листинга программы
- Входной параметр функции —
const char * const str
, то есть указатель на строку символов, которая передается в функцию. - Внутри функции создаются две переменные:
x
типаshort
иptr
типаchar *
. - Переменная
ptr
инициализируется адресом переменнойx
с помощью оператораreinterpret_cast
. - Переменная
res
инициализируется значением 0. - Если первый символ в переменной
ptr
равен 1, то переменнаяres
инициализируется как разность между адресом первого символа строкиstr
иptr
. - Если первый символ в переменной
ptr
не равен 1, то переменнаяres
инициализируется как разность между адресом первого символа строкиstr
иptr
. - Функция возвращает значение переменной
res
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д