Programowanie komputerowe - ciągi
Podczas naszej dyskusji na temat charactersdowiedzieliśmy się, że typ danych znakowych dotyczy pojedynczego znaku i możesz przypisać dowolny znak z klawiatury do zmiennej typu znakowego.
Przejdźmy teraz trochę do przodu i rozważmy sytuację, w której musimy przechowywać więcej niż jeden znak w zmiennej. Widzieliśmy, że programowanie w C nie pozwala na przechowywanie więcej niż jednego znaku w zmiennej typu znakowego. Zatem poniższe instrukcje są nieprawidłowe w programowaniu w C i powodują błędy składniowe -
char ch1 = 'ab';
char ch2 = '10';
Widzieliśmy również, jak używać pojęcia arraysdo przechowywania więcej niż jednej wartości podobnego typu danych w zmiennej. Oto składnia do przechowywania i drukowania pięciu liczb w tablicy typu 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;
}
}
Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -
number[0] = 10
number[1] = 20
number[2] = 30
number[3] = 40
number[4] = 50
Teraz zdefiniujmy tablicę pięciu znaków w taki sam sposób jak dla liczb i spróbujmy je wydrukować -
#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;
}
}
Tutaj użyliśmy% c do wydrukowania wartości znaku. Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -
ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o
Jeśli skończyłeś z powyższym przykładem, myślę, że zrozumiałeś, jak działają łańcuchy znaków w programowaniu w C, ponieważ strings in C are represented as arrays of characters. Programowanie w C uprościło przypisywanie i drukowanie ciągów. Sprawdźmy jeszcze raz ten sam przykład z uproszczoną składnią -
#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;
}
}
Tutaj użyliśmy% s do wydrukowania pełnej wartości ciągu przy użyciu nazwy tablicy ch, który w rzeczywistości jest początkiem przechowywania adresu pamięci ch zmienna, jak pokazano poniżej -
Chociaż nie jest to widoczne z powyższych przykładów, program w C wewnętrznie przypisuje znak null '\0'jako ostatni znak każdego łańcucha. Wskazuje koniec ciągu i oznacza, że jeśli chcesz przechowywać 5-znakowy ciąg w tablicy, musisz zdefiniować rozmiar tablicy 6 jako dobrą praktykę, chociaż C nie narzeka na to.
Jeśli powyższy kod jest kompilowany i wykonywany, daje następujący wynik -
String = Hello
ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o
Podstawowe pojęcia związane ze strunami
Na podstawie powyższej dyskusji możemy podsumować następujące ważne punkty dotyczące ciągów znaków w języku programowania C -
Łańcuchy w C są reprezentowane jako tablice znaków.
W programowaniu w C możemy utworzyć ciąg, przypisując znak po znaku do tablicy znaków.
W programowaniu w C możemy utworzyć ciąg, przypisując pełny ciąg ujęty w podwójny cudzysłów.
Możemy wydrukować ciąg znak po znaku za pomocą indeksu tablicy lub pełnego ciągu, używając nazwy tablicy bez indeksu.
Ostatnim znakiem każdego łańcucha jest znak null, tj. ‘\0’.
Większość języków programowania udostępnia wbudowane funkcje do manipulowania napisami, np. Można łączyć łańcuchy, wyszukiwać z łańcucha, wyodrębniać podciągi z łańcucha itp. Więcej informacji można znaleźć w naszym szczegółowym samouczku Programowanie w C lub jakikolwiek inny język programowania.
Ciągi znaków w Javie
Chociaż można używać tablic znaków do przechowywania ciągów, ale Java jest zaawansowanym językiem programowania, a jego projektanci starali się zapewnić dodatkową funkcjonalność. Java udostępnia ciągi znaków jako wbudowany typ danych, jak każdy inny typ danych. Oznacza to, że możesz definiować ciągi bezpośrednio, zamiast definiować je jako tablicę znaków.
Poniżej znajduje się równoważny program napisany w Javie. Java korzysta z rozszerzenianew operator do tworzenia zmiennych łańcuchowych, jak pokazano w poniższym programie.
Możesz spróbować uruchomić następujący program, aby zobaczyć dane wyjściowe -
public class DemoJava {
public static void main(String []args) {
String str = new String("Hello");
System.out.println( "String = " + str );
}
}
Kiedy powyższy program jest wykonywany, daje następujący wynik -
String = Hello
Ciągi znaków w Pythonie
Tworzenie ciągów znaków w Pythonie jest tak proste, jak przypisanie ciągu znaków do zmiennej Pythona za pomocą pojedynczych lub podwójnych cudzysłowów.
Poniżej podano prosty program, który tworzy dwa łańcuchy i drukuje je za pomocą funkcji print () -
var1 = 'Hello World!'
var2 = "Python Programming"
print "var1 = ", var1
print "var2 = ", var2
Kiedy powyższy program jest wykonywany, daje następujący wynik -
var1 = Hello World!
var2 = Python Programming
Python nie obsługuje typów znaków; są one traktowane jako ciągi o długości jeden, a zatem również traktowane jako podciąg.
Aby uzyskać dostęp do podciągów, użyj nawiasów kwadratowych do cięcia wzdłuż indeksu lub indeksów, aby uzyskać podciąg. Spójrz na następujący segment kodu -
var1 = 'Hello World!'
var2 = "Python Programming"
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]
Wykonanie powyższego kodu daje następujący wynik -
var1[0]: H
var2[1:5]: ytho