Функция strlen

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

size_t strlen( const char * string );

Заголовочный файл:

Название Язык
string.h С
cstring С++

Описание

Длина Си-строки определяется по достижению нулевого символа  — нуль терминатор. Функция strlen видит начало Си-строки  и начинает сначала считать количество символов (байтов, отводимых под каждый символ), этот процесс выполняется до тех пор, пока не будет достигнут завершающий нулевой символ. Обратите внимание на то, что завершающий нулевой символ не входит в длину строки. Он является служебным символом, для обозначения завершения Си-строки.

Не путайте размер массива, который содержит строку и длину строки. Например:

char string[100] = "строка";

В данной строке массив имеет размер 100 символов, но строка в этом массиве имеет длину всего 11 символов. Таким образом, если выполнится оператор sizeof(string), ответ будет 100, а если — функция strlen(string), ответ 6.

Параметры:

  • string
    Си-строка.

Возвращаемое значение

Длина строки.

Пример: исходный код программы

//пример использования функции strlen
#include <iostream>
#include <cstring>                        // для strlen

int main()
{
  char input[256];
  std::cout << "Введите строку: ";
  std::cin >> input;
  std::cout << "Строка " << input << " содержит " << strlen(input) << " символов\n";
  return 0;
}

Пример работы программы

CppStudio.com
Введите строку: Созвездие Персея
Строка Созвездие содержит 18 символов
Автор: admin
Дата: 31.08.2012
Поделиться:

Комментарии

  1. Eduard_P

    Eduard_P

    Не дурите людей!

    Эта функция правильно работает только с латиницей. В примере код  std::cin >> input; считает ввод до первого пробела,(будет считано только первое слово), для считывания сроки с пробелами нужно применить std::cin.getline(input,80);Для правильного отображения количества символов в строке и латиницы и кириллицы применяется тип wchar_t. Ниже приведен код, который правильно отображает количество символов в строке (пробел относится к латинице) и вывод будет соответствовать  приведенному примеру работы программы.

    //пример использования функции wcslen
    #include <iostream>
    
    using namespace std; 
    int main()
    
    {
      setlocale (LC_ALL, "");
      wchar_t input[80];
      wcout << L"Введите строку: ";
      wcin.getline(input,80);
      wcout << L"Строка " << input << L" содержит " << wcslen(input) << L" символов\n";
      return 0;
    }
  2. Alex_Gates

    Alex_Gates

    это ответ на вопрос Красовского на прямую ответить, что то не выходит.

     

  3. Alex_Gates

    Alex_Gates

    cin читает до пробела… для этого можно использовать getline или gets , там еще и заморочка со стандартами… например в С++ 14 нельзя использовать функцию gets.. + нельзя передать strlen — у символ как параметр можно только чар… ну и такие нюансы…

  4. Krasovsky Savely

    А не подскажете почему после пробела данная функция перестает работать (Geany)?

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.