ข้อมูลชนิดสตริง
โครงสร้างข้อมูลสตริง
สตริงเป็นโครงสร้างข้อมูลที่เป็นการรวบรวมโครงสร้างข้อมูลคาร์แรคเตอร์ (Character) ซึ่งเป็นตัวอักษรและสัญลักษณ์ (Symbol) ต่าง ๆ เป็นชนิดข้อมูลที่ถูกใช้งานมากชนิดหนึ่ง ภาษาเขียนโปรแกรมหลายภาษาจะกำหนดให้มาใช้งานได้ทันที เช่น ภาษาปาสคาล แต่บางภาษาไม่มีมาให้ เช่น ภาษาซี จะต้องสร้างขึ้นมาด้วยผู้เขียนโปรแกรม โดยนำโครงสร้างอาร์เรย์มาใช้และสมาชิกทุกตัวมีโครงสร้างข้อมูลคาร์แรคเตอร์ได้ชนิดเดียว ดังในรูปที่ 3.1 เป็นสตริงที่มีตัวอักษรต่อเป็นข้อความการกำหนดสตริง
รูปแบบการกำหนดสตริงเป็นการนำเอาอักษรพยัญชนะ (Alphabet) มรารวบรวม ดังนี้
S = ‘a1a2 . . . aN’
โดยตัวอักษร a1 เป็นสมาชิกของอักษรพยัญชนะ และ 1 ≤i≤N
เป็นการสร้างสตริงชื่อ S ที่มีความยาวเท่ากับ N ตัวอักษร และการกำหนดค่าให้แต่ละสมาชิกจะเป็นแบบเดียวกับการใช้ในอาร์เรย์ ทำให้การใช้งานไม่สะดวกเมื่อต้องใช้งานบ่อย ๆ จึงมีการกำหนดชุดปฏิบัติการพื้นฐาน (Operator) เพื่อจัดการกับสตริง ดังนี้
ความยาวสตริง (String Length)
เป็นการบอกให้ทราบว่าสตริงตัวนั้นมีตัวอักษรหรือ ความยาวเท่าไร จะกำหนดเป็นฟังก์ชัน Length ที่ส่งค่าความยาวกลับมาให้ ดังนี้
N = Length (S) ;
ค่าที่ส่งกลับมาเท่ากับ N
รวมสตริง (String Concatenation) เป็นการนำ 2 สตริงมารวมกันเป็นสตริงเดียว โดยนำตัวอักษรทั้งหมดของสตริงตัวหลังไปต่อท้ายสตริงตัวแรก กำหนดเป็นฟังก์ชัน Concate ดังนี้
Concate (S, S1);
โดย S1 = ‘b1b2 . . . bN’ จะได้ S = ‘a1a2 . . . aNb1b2 . . . bN’
สตริงย่อย (Substring) เป็นการคัดลอกตัวอักษรที่อยู่ติดกับบางส่วนของสตริงตัวที่สองให้กับสตริงตัวแรก แต่ต้องทราบว่าสตริงย่อยที่ต้องการคัดลอกมีตำแหน่งเริ่มต้นและสิ้นสุดที่ไหน โดยกำหนดเป็นฟังก์ชัน SubStr ดังนี้
Substr (S , S1 , i , j);
โดย i ตำแหน่งเริ่มต้น และ o < i < Lingth(S), j เป็นจำนวนตัวอักษรคัดลอก และ o <j <Length(S) จะได้ S = ‘bi . . . bi+j-1’
นอกจากนี้ อาจมีการกำหนดการปฏิบัติการเรื่องอื่น ๆ เพิ่มเข้ามาได้ เช่น การหาตัวอักษรบางส่วนในสตริง การแทรกตัวอักษรางส่วนเข้าไปในสตริง หรอการลบตัวอักษรบางส่วนออกจากสตริง ในภาษาซีก็มีชุดปฏิบัติการเหล่านี้มาให้ใช้แต่อาจไม่พียงพอหรือตรงตามต้องการ จึงต้องเขียนใช้งานด้วยตนเอง
ในภาษาซีไม่มีโครงสร้างข้อมูลสตริงมาให้จึงกำหนดเป็นอาร์เรย์ที่สมาชิกมีโครงสร้างข้อมูล char ซึ่งเก็บได้ 80 อักษร แต่โดยมาตรฐานโครงสร้างข้อมูลสตริงที่กำหนดในภาษาอื่น ๆ เช่น ปาสคาลจะมี 256 ตัวอักษร ส่วนฟังก์ชันที่เขียนขึ้นมาเป็นตัวอย่างวิธีการสร้างชุดปฏิบัติการกับโครงสร้างข้อมูลสตริง ซึ่งในบทต่อ ๆ ไปจะต้องมีใช้กับโครงสร้างข้อมูลชนิดต่าง ๆ
เช่นกัน
สตริงเป็นโครงสร้างข้อมูลที่เป็นการรวบรวมโครงสร้างข้อมูลคาร์แรคเตอร์ (Character) ซึ่งเป็นตัวอักษรและสัญลักษณ์ (Symbol) ต่าง ๆ เป็นชนิดข้อมูลที่ถูกใช้งานมากชนิดหนึ่ง ภาษาเขียนโปรแกรมหลายภาษาจะกำหนดให้มาใช้งานได้ทันที เช่น ภาษาปาสคาล แต่บางภาษาไม่มีมาให้ เช่น ภาษาซี จะต้องสร้างขึ้นมาด้วยผู้เขียนโปรแกรม โดยนำโครงสร้างอาร์เรย์มาใช้และสมาชิกทุกตัวมีโครงสร้างข้อมูลคาร์แรคเตอร์ได้ชนิดเดียว ดังในรูปที่ 3.1 เป็นสตริงที่มีตัวอักษรต่อเป็นข้อความการกำหนดสตริง
รูปแบบการกำหนดสตริงเป็นการนำเอาอักษรพยัญชนะ (Alphabet) มรารวบรวม ดังนี้
S = ‘a1a2 . . . aN’
โดยตัวอักษร a1 เป็นสมาชิกของอักษรพยัญชนะ และ 1 ≤i≤N
เป็นการสร้างสตริงชื่อ S ที่มีความยาวเท่ากับ N ตัวอักษร และการกำหนดค่าให้แต่ละสมาชิกจะเป็นแบบเดียวกับการใช้ในอาร์เรย์ ทำให้การใช้งานไม่สะดวกเมื่อต้องใช้งานบ่อย ๆ จึงมีการกำหนดชุดปฏิบัติการพื้นฐาน (Operator) เพื่อจัดการกับสตริง ดังนี้
ความยาวสตริง (String Length)
เป็นการบอกให้ทราบว่าสตริงตัวนั้นมีตัวอักษรหรือ ความยาวเท่าไร จะกำหนดเป็นฟังก์ชัน Length ที่ส่งค่าความยาวกลับมาให้ ดังนี้
N = Length (S) ;
ค่าที่ส่งกลับมาเท่ากับ N
รวมสตริง (String Concatenation) เป็นการนำ 2 สตริงมารวมกันเป็นสตริงเดียว โดยนำตัวอักษรทั้งหมดของสตริงตัวหลังไปต่อท้ายสตริงตัวแรก กำหนดเป็นฟังก์ชัน Concate ดังนี้
Concate (S, S1);
โดย S1 = ‘b1b2 . . . bN’ จะได้ S = ‘a1a2 . . . aNb1b2 . . . bN’
สตริงย่อย (Substring) เป็นการคัดลอกตัวอักษรที่อยู่ติดกับบางส่วนของสตริงตัวที่สองให้กับสตริงตัวแรก แต่ต้องทราบว่าสตริงย่อยที่ต้องการคัดลอกมีตำแหน่งเริ่มต้นและสิ้นสุดที่ไหน โดยกำหนดเป็นฟังก์ชัน SubStr ดังนี้
Substr (S , S1 , i , j);
โดย i ตำแหน่งเริ่มต้น และ o < i < Lingth(S), j เป็นจำนวนตัวอักษรคัดลอก และ o <j <Length(S) จะได้ S = ‘bi . . . bi+j-1’
นอกจากนี้ อาจมีการกำหนดการปฏิบัติการเรื่องอื่น ๆ เพิ่มเข้ามาได้ เช่น การหาตัวอักษรบางส่วนในสตริง การแทรกตัวอักษรางส่วนเข้าไปในสตริง หรอการลบตัวอักษรบางส่วนออกจากสตริง ในภาษาซีก็มีชุดปฏิบัติการเหล่านี้มาให้ใช้แต่อาจไม่พียงพอหรือตรงตามต้องการ จึงต้องเขียนใช้งานด้วยตนเอง
ในภาษาซีไม่มีโครงสร้างข้อมูลสตริงมาให้จึงกำหนดเป็นอาร์เรย์ที่สมาชิกมีโครงสร้างข้อมูล char ซึ่งเก็บได้ 80 อักษร แต่โดยมาตรฐานโครงสร้างข้อมูลสตริงที่กำหนดในภาษาอื่น ๆ เช่น ปาสคาลจะมี 256 ตัวอักษร ส่วนฟังก์ชันที่เขียนขึ้นมาเป็นตัวอย่างวิธีการสร้างชุดปฏิบัติการกับโครงสร้างข้อมูลสตริง ซึ่งในบทต่อ ๆ ไปจะต้องมีใช้กับโครงสร้างข้อมูลชนิดต่าง ๆ
เช่นกัน