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

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

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

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

Мы также увидели, как использовать концепцию arraysдля хранения более одного значения схожего типа данных в переменной. Вот синтаксис для хранения и печати пяти чисел в массиве типа 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, потому что strings in C are represented as arrays of characters. Программирование на языке 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 переменная, как показано ниже -

Хотя это не видно из приведенных выше примеров, программа на C внутренне присваивает нулевой символ '\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, назначив полную строку, заключенную в двойные кавычки.

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

  • Последний символ каждой строки является нулевым символом, т. Е. ‘\0’.

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

Строки в 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