Написать функцию на Си, которая бы определяла длину вводимой строки - 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;
}

Объяснение кода листинга программы

  1. Входной параметр функции — const char * const str, то есть указатель на строку символов, которая передается в функцию.
  2. Внутри функции создаются две переменные: x типа short и ptr типа char *.
  3. Переменная ptr инициализируется адресом переменной x с помощью оператора reinterpret_cast.
  4. Переменная res инициализируется значением 0.
  5. Если первый символ в переменной ptr равен 1, то переменная res инициализируется как разность между адресом первого символа строки str и ptr.
  6. Если первый символ в переменной ptr не равен 1, то переменная res инициализируется как разность между адресом первого символа строки str и ptr.
  7. Функция возвращает значение переменной res.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.733 из 5
Похожие ответы