Прототип функции
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|
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 символов
--