การเขียนโปรแกรมคอมพิวเตอร์ - สตริง

ในระหว่างการอภิปรายของเราเกี่ยวกับ charactersเราได้เรียนรู้ว่าประเภทข้อมูลอักขระเกี่ยวข้องกับอักขระตัวเดียวและคุณสามารถกำหนดอักขระใดก็ได้จากแป้นพิมพ์ของคุณไปยังตัวแปรประเภทอักขระ

ตอนนี้เรามาดูสถานการณ์ที่เราต้องเก็บอักขระมากกว่าหนึ่งตัวไว้ในตัวแปร เราได้เห็นแล้วว่าการเขียนโปรแกรมภาษาซีไม่อนุญาตให้เก็บอักขระมากกว่าหนึ่งตัวในตัวแปรชนิดอักขระ ดังนั้นข้อความต่อไปนี้ไม่ถูกต้องในการเขียนโปรแกรม 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 โดยกำหนดสตริงที่สมบูรณ์ที่อยู่ในเครื่องหมายคำพูดคู่

  • เราสามารถพิมพ์อักขระสายอักขระโดยใช้ตัวห้อยอาร์เรย์หรือสตริงที่สมบูรณ์โดยใช้ชื่ออาร์เรย์โดยไม่มีตัวห้อย

  • อักขระสุดท้ายของทุกสตริงเป็นอักขระว่างกล่าวคือ ‘\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