Компьютерное программирование - Струны

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

Теперь давайте продвинемся немного вперед и рассмотрим ситуацию, когда нам нужно хранить более одного символа в переменной. Мы видели, что C-программирование не позволяет хранить более одного символа в переменной символьного типа. Таким образом, следующие утверждения недопустимы в программировании на C и вызывают синтаксические ошибки:

char ch1 = 'ab';
char ch2 = '10';

Мы также увидели, как использовать концепцию массивов для хранения более одного значения схожего типа данных в переменной. Вот синтаксис для хранения и печати пяти чисел в массиве типа int -

#include <stdio.h>

main() {
   int number[5] = {10, 20, 30, 40, 50};
   int i = 0;
        
   while( i < 5 ) {
      printf("number[%d] = %d\n", i, number[i] );
      i = i + 1;
   }
}

Когда приведенный выше код компилируется и выполняется, он дает следующий результат -

number[0] = 10
number[1] = 20
number[2] = 30
number[3] = 40
number[4] = 50

Теперь давайте определим массив из пяти символов таким же образом, как мы это делали для чисел, и попробуем напечатать их.

#include <stdio.h>

main() {
   char ch[5] = {'H', 'e', 'l', 'l', 'o'};
   int i = 0;
        
   while( i < 5 ) {
      printf("ch[%d] = %c\n", i, ch[i] );
      i = i + 1;
   }
}

Здесь мы использовали% c для печати значения символа. Когда приведенный выше код компилируется и выполняется, он дает следующий результат -

ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o

Если вы закончили с приведенным выше примером, то, я думаю, вы поняли, как работают строки в программировании на C, потому что строки в C представлены в виде массивов символов . C программирование упростило назначение и печать строк. Давайте проверим тот же пример еще раз с упрощенным синтаксисом -

#include <stdio.h>

main() {
   char ch[5] = "Hello";
   int i = 0;
    
   /* Print as a complete string */
   printf("String = %s\n", ch);  

   /* Print character by character */
   while( i < 5 ) {
      printf("ch[%d] = %c\n", i, ch[i] );
      i = i + 1;
   }
}

Здесь мы использовали% s, чтобы напечатать полное строковое значение, используя имя массива ch , которое фактически является началом адреса памяти, содержащего переменную ch, как показано ниже -

Хотя это не видно из приведенных выше примеров, программа на С внутренне присваивает null символ '\ 0' в качестве последнего символа каждой строки. Это указывает на конец строки, и это означает, что если вы хотите сохранить 5-символьную строку в массиве, то вы должны определить размер массива 6 как хорошую практику, хотя C не жалуется на это.

Если приведенный выше код компилируется и выполняется, он дает следующий результат -

String = Hello
ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o

Основные понятия строки

На основании приведенного выше обсуждения мы можем сделать следующие важные замечания о строках в языке программирования C:

  • Строки в C представлены как массивы символов.

  • Мы можем составить строку в C-программировании, присваивая символ за символом в массив символов.

  • Мы можем составить строку в C-программировании, назначив полную строку, заключенную в двойные кавычки.

  • Мы можем напечатать символ за строкой, используя индекс массива или полную строку, используя имя массива без индекса.

  • Последний символ каждой строки является null символом, то есть '\ 0' .

  • Большинство языков программирования предоставляют встроенные функции для работы со строками, то есть вы можете объединять строки, вы можете искать из строки, вы можете извлекать подстроки из строки и т. Д. Более подробную информацию вы можете найти в нашем подробном руководстве по C программирование или любой другой язык программирования.

Строки в Java

Хотя вы можете использовать символьные массивы для хранения строк, но Java - это продвинутый язык программирования, и его разработчики пытались обеспечить дополнительную функциональность. Java предоставляет строки в виде встроенного типа данных, как и любой другой тип данных. Это означает, что вы можете определять строки напрямую, а не определять их как массив символов.

Ниже приводится эквивалентная программа, написанная на Java. Java использует оператор new для создания строковых переменных, как показано в следующей программе.

Вы можете попробовать выполнить следующую программу, чтобы увидеть результат -

public class DemoJava {
   public static void main(String []args) {
      String str = new String("Hello");  
      System.out.println( "String = " + str );
   }
}

Когда вышеуказанная программа выполняется, она дает следующий результат -

String = Hello

Строки в Python

Создание строк в Python так же просто, как назначение строки в переменную Python с использованием одинарных или двойных кавычек.

Ниже приведена простая программа, которая создает две строки и печатает их с помощью функции print () -

var1 = 'Hello World!'
var2 = "Python Programming"

print "var1 = ", var1
print "var2 = ", var2

Когда вышеуказанная программа выполняется, она дает следующий результат -

var1 =  Hello World!
var2 =  Python Programming

Python не поддерживает тип символов; они обрабатываются как строки длины один, таким образом также считаются подстрокой.

Чтобы получить доступ к подстрокам, используйте квадратные скобки для нарезки вместе с индексом или индексами, чтобы получить вашу подстроку. Взгляните на следующий сегмент кода -

var1 = 'Hello World!'
var2 = "Python Programming"

print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]

Когда приведенный выше код выполняется, он дает следующий результат -

var1[0]:  H
var2[1:5]:  ytho