Функция strlen в C/C++

Прототип функции

C:
Defined in header <string.h>
size_t strlen( const char *str );

C++:
Defined in header <cstring>
std::size_t strlen( const char* str );

str - указатель на null-terminated строку
Функции возвращает количество символов перед завершающим нулем. Завершающий нулевой символ не входит в длину строки. Он является служебным символом, для обозначения завершения Си-строки.

В C++ есть альтернативная функция char_traits::length

Не путайте размер массива, который содержит строку и длину строки. Например:
char mystr[100]="test string"; 
В данной строке массив имеет размер 100 символов, но строка в этом массиве имеет длину всего 11 символов. Таким образом, если выполнится оператор sizeof(mystr), ответ будет 100, а если — функция strlen(mystr), ответ 11.

Примеры

С пример №1

#include <string.h>
#include <stdio.h>
 
int main(void)
{
    const char str[] = "How many characters does this string contain?";
 
    printf("without null character: %zu\n", strlen(str));
    printf("with null character: %zu\n", sizeof(str));
 
    return 0;
}
Output:
without null character: 45
with null character: 46

С пример №2

/* strlen example */
#include <stdio.h>
#include <string.h>

int main ()
{
  char szInput[256];
  printf ("Enter a sentence: ");
  gets (szInput);
  printf ("The sentence entered is %u characters long.\n",(unsigned)strlen(szInput));
  return 0;
}
Output:
Enter sentence: just testing
The sentence entered is 12 characters long.

С пример №3

#include <stdio.h>
#include <string.h>

int main ()
{
   char str[50];
   int len;

   strcpy(str, "This is tutorialspoint.com");

   len = strlen(str);
   printf("Length of |%s| is |%d|\n", str, len);
   
   return(0);
}
Output:
Length of |This is tutorialspoint.com| is |26|

С++ пример №1

#include <cstring>
#include <iostream>
 
int main()
{
   const char str[] = "How many characters does this string contain?";
 
   std::cout << "without null character: " << std::strlen(str) << '\n'
             << "with null character: " << sizeof(str) << '\n';
}
Output:
without null character: 45
with null character: 46

С++ пример №2

//пример использования функции strlen
#include <iostream>
#include <cstring>                        // для strlen
 
int main()
{
  char input[256];
  std::cout << "Введите строку: ";
  std::cin >> input;
  std::cout << "Строка " << input << " содержит " << strlen(input) << " символов\n";
  return 0;
}
Output:
Введите строку: Созвездие Персея
Строка Созвездие содержит 18 символов

--