Как найти длину строки в с

от admin

String Length in C Language

In the example shown above, the length of the string str is 6.

In this tutorial, first, we will show how to use a user defined function to calculate length of a string, and then we will show you a built-in library function strlen(). We also show you the uses of the sizeof operator for string literals.

String Length Using User Defined Function

You can write a user defined function which returns the number of characters in a string.

int stringLength ( char * str )
{
int i = 0 ;

printf ( "Length of the string str is => %d \n " , stringLength ( str ) ) ;

Here, we iterate the while loop from i = 0 until we do not encounter the ‘\0’ character. The value of i is increased by 1 in each iteration of the while loop. When the loop ends, the value of i is the length of the string.

String Length Using Built-In Library Function

The built-in library function strlen() can also be used to determine string length.

strlen() function:

Header file:

Syntax:

Argument: This function takes an argument of the type pointer to char.

Return value: This function returns the length of the string str. Note that size_t is just an alias of an unsigned integer.

//Example2.c
#include<stdio.h>
#include<string.h>

int main ( )
{
char str1 [ 30 ] = "STRING ARRAY" ;
char * str2 ;
char * str3 ;

str2 = str1 ;
str3 = "STRING POINTER" ;

printf ( "Length of the string str1 is => %ld \n " , strlen ( str1 ) ) ;
printf ( "Length of the string str2 is => %ld \n " , strlen ( str2 ) ) ;
printf ( "Length of the string str3 is => %ld \n " , strlen ( str3 ) ) ;
printf ( "Length of the string " STRING LITERALS " is => %ld \n " , strlen ( "STRING LITERALS" ) ) ;

Here, we pass string array, string pointer, and string literal to the strlen function, and the function returns the length of the string.

String Length Using sizeof Operator

We also can use the sizeof operator for string length (only for string literal). But, we have to subtract 1 from the value returned by this operator, because it also counts the’\0’ character. For array and pointer, the sizeof operator returns the allocated size of the array and the pointer, respectively.

int main ( )
{
char str1 [ 30 ] = "STRING" ;
char * str2 = str1 ;

printf ( "Length of " STRING " is => %d \n " , ( sizeof ( "STRING" ) — 1 ) ) ;
printf ( "Allocated size of the str1 array is => %d \n " , sizeof ( str1 ) ) ;
printf ( "Size of the str2 pointer is => %d \n " , sizeof ( str2 ) ) ;

Here, in Line no 9, we pass the string literal “STRING” and get the size, including the ‘\0’ character. So, we subtract 1 and get the actual size of the string.

When we pass an array to the sizeof operator, it returns the allocated size of the array, which is 30, and when passing a character pointer, it returns the size of the pointer.

Conclusion

So, in this tutorial, we have shown you how string length can be calculated in various ways. You can use in your code whichever method is best suited for you.

String Length in C

In C, a string is an array of characters that is terminated with a null character "\0" . The length of a string will be determined by counting all the characters in the string (except for the null character) .

Scope of Article

  • In this article, we will learn to find the length of a String in C.
  • All the methods to find the length of a String will be explained in this article.
  • Every method will be explained using syntax, images, and examples.

Introduction

The string length in C is equal to the count of all the characters in it (except the null character "\0").

For Example, the string "gfddf" has a length of 5 and the string "4343" has a length of 4 .

Note: In C, a String is an array of characters that is terminated with a null character "\0" to indicate the end of the string.

How to Find the String Length in C?

We can find the length of a String by counting all the characters in it (before the null character) using a for loop. We can also use the built-in string.h library function strlen() or the sizeof() operator.
Let us understand how to use these methods in the coming sections.

String Length in C using a User-Defined Function

We can find the length of a string using a user-defined function by iterating over the string in a for loop and incrementing the count of characters (length) by 1 till it reaches the null character "\0" and then returning the count.

Let's take a look at its implementation:
Code

Output

Explanation:

In the above example, we are finding the length of a string by iterating over it in a for loop and incrementing the count by 1 in each iteration till it reaches the null character. The value of count after the end of the for loop will be equal to the length of the string.

String Length in C Using Built-In Library Function

The length of a string can be found using the built-in library function strlen() in string.h header file. It returns the length of the string passed to it (ignoring the null character).

Syntax

The string is passed to the strlen() function, which returns its length.

Let us take a look at its implementation.
Code

Output :

In the above example, we are finding the length of a string by using the string.h library function strlen() , which returns the length of the string passed to it.

String Length in C Using the sizeof() Operator

We can also find the length of a string using the sizeof() Operator in C . The sizeof is a unary operator which returns the size of an entity (variable or value).

The value is written with the sizeof operator which returns its size (in bytes).

Let us take a look at its implementation:
Code

Output

In the above example, we are finding the length of the string "g4343" using the sizeof operator in C. The sizeof operator returns its length as 6 in the output as It returns the size of an operand, not the string length (including null values). But here, if we print length-1 then we get the length of the string.

Длина строки (String Length) С++

C++

Программирование и разработка

Строка представляет собой массив символов или букв. Это последовательный набор букв или массив символов. Утверждение и описание строки, содержащей набор символов, аналогичны утверждению и определению расположения других типов данных. В C++ длина строки означает количество байтов, которые используются для шифрования указанной строки. Это связано с тем, что байты обычно сопоставляются с символами C++.

Читать:
Как русифицировать windows 7 ultimate x64

В этой статье мы обсудим различные методы определения длины строки в C++. Мы устанавливаем программное обеспечение «DEVC++» на наш ноутбук для выполнения кодов. Сначала мы создаем новый файл, нажав «Ctrl + N» на клавиатуре. После кодирования компилируем и запускаем код по «F11» с клавиатуры.

Используйте циклы «While» и «For»

Использование цикла while подобно традиционному методу определения длины различных строк. При использовании цикла for и while мы устанавливаем переменную «счетчик» на 0, а затем добавляем этот счетчик от начала заданной строки до завершения строки (заканчивается нулевым символом).

В этом случае мы используем две петли. Цикл for и цикл while могут определять длину определенной строки. Во-первых, мы используем директивы препроцессора. Он содержит заголовочный файл. Это используется в начале программы. Эти директивы начинаются со знака «#»:

#include<iostream>
using namespace std ;
int main ( )
<
string str = «visual programming» ;
int i = 0 ,count = 0 ;
while ( str [ i ] ! = ‘ \0 ‘ )
<
++ i ;
>
cout << «Length of the string by using While Loop: « << i << endl ;
for ( i = 0 ; str [ i ] ! = ‘ \0 ‘ ; i ++ )
<
count ++ ;
>
cout << «Length of the string by using For Loop: « << count << endl ;
return 0 ;
>

Здесь мы берем заголовочный файл #include. Затем мы используем основную функцию. Каждая программа на C++ содержит функцию main(), которая является первым сегментом, реализуемым при выполнении кода.

Теперь возьмем строку «визуальное программирование». Для этой строки используется переменная «str». Далее берем еще две переменные: переменную «i» и переменную «count». Объявляем переменную «i». Здесь мы используем переменную с именем «count», чтобы определить длину строки. Мы инициализируем обе переменные нулем. Здесь мы используем цикл while. Каждая строка заканчивается символом «\0», и это называется управляющей последовательностью. Этот «\0» не является отличительным символом. Это точное число ноль. Цикл while выполняется до тех пор, пока переменная «str[i]» не перестанет быть эквивалентной escape-серии.

В конце цикла значение «I» увеличивается до 0, пока не будет найден последний элемент заданной строки. Таким образом, мы узнаем длину данной строки. Мы используем «cout» для вывода сообщения «длина строки с использованием цикла while»:

Теперь воспользуемся циклом for

Теперь воспользуемся циклом for. Здесь выражение «i=0» инициализирует переменную «i» значением 0. Инициализация выполняется сразу после входа в цикл. Этот цикл выполняется до тех пор, пока не будет достигнут последний символ. Выражение «i++» увеличивает переменную «i» каждый раз при выполнении цикла. В цикле переменная count добавляется каждый раз, пока не будет достигнуто окончание определенной строки. Таким образом, мы получаем значение переменной «count» и переменной «i». В конце мы снова используем «cout», чтобы напечатать оператор «длина строки с использованием цикла for».

Используйте функцию Strlen()

«Sstring» — это библиотека, содержащая функцию strlen(). В C++ мы используем функцию strlen() для получения длины строки. Это встроенная функция. Он используется в строках в стиле C. Эта встроенная функция возвращает длину определенной строки от первого символа до конечного нулевого символа:

#include <iostream>
#include <cstring>
using namespace std ;

int main ( ) <
char str [ ] = “I love to play badminto” «;
int len = strlen(str);
cout <<“» Length of the string : “ » << len << endl;
>

В этом случае сначала мы используем заголовочный файл «#include ». И мы должны использовать заголовочный файл «#include » в начале программы для выполнения кода, в котором мы используем функцию strlen(). Следующий пример кода получает строку в стиле C и массив символов и использует функцию strlen() для получения ее длины. Берем строку «Я люблю играть в бадминтон», чтобы получить длину этой строки.

Данная строка содержит 24 символа

Данная строка содержит 24 символа. Итак, мы получаем 24 вывода. Мы используем «cout» для вывода сообщения «длина строки».

Используйте метод Str.length()

Другой метод определения длины заданной строки — использование функции str.length(). Он обеспечивает длину строки в байтах. Это фактическое количество байтов, соответствующих символам строки, а не ее вместимость. Объект определенной строки захватывает байты без шифрования информации, которая может быть использована для шифрования его символов. Таким образом, возвращаемое значение может не отражать реальное количество зашифрованных символов в последовательности многобайтовых символов:

#include <iostream>
#include <string>
int main ( )
<
std :: string str ( “modern programming language” ) ;
std :: cout << “The length of the string is “ << str. length ( ) ;
return 0 ;
>

Урок №202. Длина и ёмкость std::string

При создании строки не помешало бы указать её длину и ёмкость (или хотя бы знать эти параметры).

Длина std::string

Длина строки — это количество символов, которые она содержит. Есть две идентичные функции для определения длины строки:

size_type string::length() const

size_type string::size() const

Обе эти функции возвращают текущее количество символов, которые содержит строка, исключая нуль-терминатор. Например:

Хотя также можно использовать функцию length() для определения того, содержит ли строка какие-либо символы или нет, эффективнее использовать функцию empty():

bool string::empty() const — эта функция возвращает true , если в строке нет символов, и false — в противном случае.

Есть еще одна функция, связанная с длиной строки, которую вы, вероятно, никогда не будете использовать, но мы все равно её рассмотрим:

size_type string::max_size() const — эта функция возвращает максимальное количество символов, которое может хранить строка. Это значение может варьироваться в зависимости от операционной системы и архитектуры операционной системы.

Ёмкость std::string

Ёмкость строки — это максимальный объем памяти, выделенный строке для хранения содержимого. Это значение измеряется в символах строки, исключая нуль-терминатор. Например, строка с ёмкостью 8 может содержать 8 символов.

size_type string::capacity() const — эта функция возвращает количество символов, которое может хранить строка без дополнительного перераспределения/перевыделения памяти.

Length: 10
Capacity: 15

Примечание: Запускать эту и следующие программы следует в полноценных IDE, а не в веб-компиляторах.

Обратите внимание, ёмкость строки больше её длины! Хотя длина нашей строки равна 10, памяти для неё выделено аж на 15 символов! Почему так?

Здесь важно понимать, что, если пользователь захочет поместить в строку больше символов, чем она может вместить, строка будет перераспределена и, соответственно, ёмкость будет больше. Например, если строка имеет длину и ёмкость равную 10, то добавление новых символов в строку приведет к её перераспределению. Делая ёмкость строки больше её длины, мы предоставляем пользователю некоторое буферное пространство для расширения строки (добавление новых символов).

Но в перераспределении есть также несколько нюансов:

Во-первых, это сравнительно ресурсозатратно. Сначала должна быть выделена новая память. Затем каждый символ строки копируется в новую память. Если строка большая, то тратится много времени. Наконец, старая память должна быть удалена/освобождена. Если вы делаете много перераспределений, то этот процесс может значительно снизить производительность вашей программы.

Во-вторых, всякий раз, когда строка перераспределяется, её содержимое получает новый адрес памяти. Это означает, что все текущие ссылки, указатели и итераторы строки становятся недействительными!

Обратите внимание, не всегда строки создаются с ёмкостью, превышающей её длину. Рассмотрим следующую программу:

Похожие статьи