Fuctions สตริงยอดนิยมใน C [พร้อมตัวอย่าง]

เผยแพร่แล้ว: 2020-10-21

สตริงในภาษา C คืออาร์เรย์ของอักขระที่ลงท้ายด้วยอักขระว่าง ('\0') อักขระ null ที่ส่วนท้ายของสตริงบ่งชี้จุดสิ้นสุดของสตริง และสตริงจะถูกปิดด้วยเครื่องหมายอัญประกาศคู่เสมอ ในภาษาซี ตัวอักษรถูกปิดด้วยเครื่องหมายคำพูดเดี่ยว ตัวอย่างบางส่วนที่แสดงด้านล่าง

ตัวอย่างหรือการแสดงแทนอักขระ C และสตริง

  • char string [10] = { 's','d','f','d','t','j','a','\0' };
  • สตริงถ่าน [10] =” สดกว่า”;
  • สตริงอักขระ[]=” สดกว่า”;

มีความแตกต่างเล็กน้อยระหว่างการประกาศสตริงในข้อความสั่งทั้งสองข้างต้น เช่นเดียวกับเมื่อเราประกาศ char เป็น string[10] พื้นที่หน่วยความจำ 10 ไบต์จะได้รับการจัดสรรเพื่อเก็บค่าสตริงไว้ 10 ค่า ในขณะที่เมื่อเราประกาศเป็น string[] หน่วยความจำจะได้รับการจัดสรรในขณะที่ดำเนินการโปรแกรม

สารบัญ

การประกาศสตริงและการเริ่มต้น

ในการเขียนโปรแกรม C สตริงสามารถประกาศได้สองวิธีดังที่แสดงด้านบน ในการเขียนโปรแกรม C สตริงคือลำดับของอักขระที่สิ้นสุดด้วยอักขระ null หรือ '\0' ตัวอย่างเดียวกันได้รับด้านล่าง:

ถ่านชั่วคราว[]=” สตริงชั่วคราว”;

เมื่อมีการประกาศสตริงของอักขระประเภท char ที่อยู่ในเครื่องหมายอัญประกาศคู่ \0 จะถูกต่อท้ายสตริงโดยอัตโนมัติ ตัวอย่างเช่น:

ถ่านชั่วคราว[]=” สตริงชั่วคราว”;

t อี พี t r ฉัน g \0

การประกาศสตริง

สตริงในภาษา C มีการประกาศในลักษณะต่อไปนี้:

อุณหภูมิถ่าน[5];

ส[0] ส[1] ส[2] ส[3] ส[4]

ด้วยวิธีนี้ เราสามารถเริ่มต้นสตริงที่มีความยาว 5

การเริ่มต้นสตริง

การเริ่มต้นสตริงสามารถทำได้หลายวิธีและบางส่วนได้รับด้านล่าง:

ถ่าน t[]=” สตริงชั่วคราว”;

ถ่าน t [10] =” สตริงชั่วคราว”;

อักขระ t[]={'t','e','m', 'd','\0'};

อักขระ t[5]={'t','e','m', 'd','\0'};

ตู่ อี พี \0

t[0] t[1] t[2] t[3] t[4]

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

อ่าน: String Array ใน Java: Java String Array พร้อมตัวอย่างการเข้ารหัส

การกำหนดค่าให้กับสตริง

อาร์เรย์และสตริงไม่สนับสนุนตัวดำเนินการกำหนด เมื่อสตริงได้รับการประกาศแล้ว คุณจะไม่สามารถกำหนดค่าให้กับตัวแปรประเภทสตริงได้ ตัวอย่างเช่นในภาษา C เราไม่สามารถเขียนและกำหนดค่าด้วยวิธีต่อไปนี้:

อักขระ t[100];

t=” ค่าอุณหภูมิ”;

การจัดการสตริงในC

ตอนนี้เรากำลังจะเกณฑ์ ฟังก์ชันสตริงที่เป็นที่นิยมใน C ซึ่งทำให้การจัดการสตริงง่ายขึ้นมาก การดำเนินการหลายอย่างบนสตริง เช่น การอ่านสตริง การคัดลอกหรือการย้อนกลับสตริง และการดำเนินการอื่นๆ อีกมากมายสามารถดำเนินการกับสตริงได้อย่างง่ายดายโดยใช้ฟังก์ชันเหล่านี้

สามารถใช้ตัวดำเนินการสตริงหรือฟังก์ชันสตริงเพื่อจัดการสตริงได้โดยตรง ในบทความนี้ เราจะอธิบายฟังก์ชันของไลบรารี เช่น gets(), puts(), strlen(), strcopy() และอื่นๆ อีกมากมายเพื่ออธิบายการจัดการสตริงใน C

บางครั้งโปรแกรมเมอร์ต้องเขียนฟังก์ชันสตริงเพื่อจัดการตามปัญหาที่ต้องการ อย่างไรก็ตาม การจัดการสตริงสามารถทำได้ด้วยตนเอง แต่จะทำให้การเขียนโปรแกรมค่อนข้างซับซ้อนและมีขนาดใหญ่

มีไลบรารีมาตรฐานของ ฟังก์ชันสตริงใน C ที่เรียกว่า "string.h" ไฟล์ส่วนหัวที่มีนามสกุล ".h" มีฟังก์ชันการจัดการสตริงจำนวนมากที่มีรูปแบบแตกต่างกัน เราจะพูดถึงบางส่วนในส่วนด้านล่างของบทความนี้:

รายการฟังก์ชันการจัดการสตริงทั่วไปบางอย่างใน C

การทำงาน คำอธิบาย
strlen() สามารถคำนวณความยาวของสตริงได้
Strcpy() สามารถคัดลอกเนื้อหาของสตริงไปที่อื่นได้
สตรัท() ใช้เพื่อเชื่อมหรือเชื่อมสองสายเข้าด้วยกัน
Strcmp() เปรียบเทียบสองสายได้
Strlwr() สามารถแปลงสตริงเป็นตัวพิมพ์เล็ก
สตรัพ () ใช้ในการแปลงตัวอักษรของสตริงเป็นตัวพิมพ์ใหญ่
Strrev() ใช้สำหรับกลับสตริง

เมื่อคุณต้องใช้ฟังก์ชันการจัดการสตริงใดๆ ในโปรแกรมของคุณ ฟังก์ชันต่างๆ ไม่ได้จำกัดอยู่เพียงฟังก์ชันเหล่านี้เท่านั้น ยังมีฟังก์ชั่นอื่นๆ อีกมากมายเช่นกัน เรามาพูดคุยกัน:

1) ใส่ () และได้รับ ()

ฟังก์ชันยอดนิยมสองอย่างของไฟล์ส่วนหัวสตริงรับและใส่จะใช้เพื่อรับอินพุตจากผู้ใช้และแสดงสตริงตามลำดับ ฟังก์ชันทั้งสองนี้มีการกำหนดไว้ในไฟล์ string.h ลองดูตัวอย่างหนึ่งของฟังก์ชันเหล่านี้:

#include หลัก ()

Int หลัก ()

{

อุณหภูมิถ่าน[20];

printf(“ป้อนชื่อของคุณ”);

ได้รับ (ชั่วคราว);

printf(“ฉันชื่อ: ”);

ทำให้(อุณหภูมิ);

กลับ 0;

}

2) strcat()

สำหรับกรณีที่ต้องมีการผนวกสตริงหนึ่งที่ส่วนท้ายของสตริงอื่น ฟังก์ชันนี้จะถูกใช้ ฟังก์ชั่น strcat สามารถผนวกสำเนาของสตริงต้นทางที่ส่วนท้ายของสตริงปลายทาง ผู้ใช้ต้องผ่านสองอาร์กิวเมนต์ที่อธิบายไว้ด้านล่าง:

i) src

ii) ปลายทาง

ที่นี่ที่ตำแหน่งของสตริง "src" ถูกระบุในขณะที่สถานที่ของ 'dest' สตริงปลายทางที่เราต้องต่อท้ายสตริงต้นทางถูกระบุ

ตัวอย่าง

#include<string.h>

int หลัก ()

{

ถ่าน src[20]= “ก่อน”;

char dest[20]= “หลัง”;

strcat(dest, src);

ทำให้(dest);

กลับ 0;

}

ผลลัพธ์จะเป็น: หลังจาก before

3) ฟังก์ชัน strlen()

ฟังก์ชันอื่นของไฟล์ส่วนหัวของสตริงที่สามารถใช้โดยตรงสำหรับสตริงคือ strlen() คุณสามารถใช้ฟังก์ชัน strlen() ซึ่งเป็น ฟังก์ชันสตริงใน C เมื่อคุณต้องค้นหาความยาวของสตริงใดๆ อย่างไรก็ตาม เรายังสามารถเขียนโปรแกรมด้วยตนเองเพื่อค้นหาความยาวของสตริงใดๆ ก็ได้ แต่การใช้ฟังก์ชันโดยตรงนี้สามารถประหยัดเวลาของคุณได้ และตัวอย่างได้รับด้านล่าง:

#include<stdio.h>

int หลัก ()

{

ความยาว int;

char s[20] = “เราอยู่ที่นี่”;

ความยาว=strlen(s);

printf(“\ความยาวของสตริงคือ = %d \n”, ความยาว);

กลับ 0;

}

ความยาวของสตริงคือ = 11

4) ฟังก์ชัน strcpy()

หากคุณต้องคัดลอกเนื้อหาของสตริงหนึ่งไปยังสตริงอื่น ฟังก์ชันนี้จะถูกใช้ ไวยากรณ์ของฟังก์ชันคือ strcpy(dest,source) ฟังก์ชันสามารถคัดลอกเนื้อหาของสตริงหนึ่งไปยังอีกสตริงหนึ่งได้ ตัวอย่างหนึ่งของฟังก์ชันได้รับด้านล่าง:

#include<string.h>

int หลัก ()

{

ถ่าน src[20]= “ ปลายทาง”;

ถ่าน dest[20]= “”;

printf(“\n สตริงต้นทางคือ = %s”, src);

printf(“\n สตริงปลายทางคือ = %s” ปลายทาง);

strcpy(ปลายทาง, src);

printf (“\ntarget string หลัง strcpy() = %s”, dest);

กลับ 0;

}

เอาท์พุต

สตริงต้นทางคือ = ปลายทาง

สตริงเป้าหมายคือ =

สตริงเป้าหมายหลัง strcpy() = ปลายทาง

เรียนรู้: StringBuffer กับ StringBuilder: ความแตกต่างระหว่าง StringBuffer & StringBuilder

5) ฟังก์ชัน strcmp()

เพื่อเปรียบเทียบสองสตริงเพื่อดูว่าเหมือนกันหรือไม่ เราสามารถใช้ฟังก์ชัน strcmp() ฟังก์ชันส่งกลับค่าที่แน่นอนซึ่งอาจเป็น 0, >0 หรือ <0 ในฟังก์ชันนี้ ค่าสองค่าที่ส่งผ่านจะถือว่าเป็นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ หมายถึง 'A' และ 'a' จะถือว่าเป็นตัวอักษรที่แตกต่างกัน ค่าที่ส่งคืนโดยฟังก์ชันถูกใช้เป็น:

i) ส่งคืน 0 เมื่อสองสตริงเหมือนกัน

ii) ถ้า str1<str2 ค่าลบจะถูกส่งกลับ

iii) ถ้า str1>str2 ค่าบวกจะถูกส่งกลับ

ตัวอย่าง:

#include<stdio.h>

#include<string.h>

int หลัก ()

{

ถ่าน str1[]=”คัดลอก”;

ถ่าน str2[]=”ถ้วยรางวัล”;

int ฉัน, j, k;

i=strcmp(str1, “คัดลอก”);

j=strcmp(str1, str2);

k-strcmp(str1, “f”);

printf(“\n %d %d %d”,ฉัน,j,k);

กลับ 0;

}

เอาท์พุต: 0 -1 1

6) ฟังก์ชัน strlwr() / strupr()

บางครั้ง คุณอาจต้องแปลงอักษรตัวพิมพ์เล็กของสตริงใดๆ เป็นตัวพิมพ์ใหญ่หรือกลับกัน เพื่อจุดประสงค์นี้มี ฟังก์ชันสตริงโดยตรงสองฟังก์ชันใน C สามารถใช้เพื่อแปลงจากตัวพิมพ์ใหญ่เป็นตัวพิมพ์เล็กหรือกลับกัน ที่นี่เราได้อธิบายตัวอย่างเดียวกัน:

#include<stdio.h>

#include<string.h>

int หลัก ()

{

ถ่าน str[]=”แปลงฉันเป็นตัวพิมพ์เล็ก”;

printf(“%s\n”, strlwr(str));

กลับ 0;

}

ผลลัพธ์: แปลงฉันเป็นตัวพิมพ์เล็ก

ในทำนองเดียวกัน หากเราจะใช้ฟังก์ชัน strupr แทน strlwr เนื้อหาทั้งหมดจะถูกแปลงเป็นตัวพิมพ์ใหญ่ เราสามารถใช้ฟังก์ชัน strtrupr ซึ่งกำหนดไว้ในไฟล์ส่วนหัวของสตริง ด้วยฟังก์ชันนี้ ตัวอักษรทั้งหมดของสตริงจะถูกแปลง โดยไม่ต้องใช้ขั้นตอนแบบแมนนวลที่ยาวเกินไป

7) ฟังก์ชัน strrev()

หากคุณต้องการย้อนกลับสตริงใดๆ โดยไม่ต้องเขียนโปรแกรมขนาดใหญ่หรือครอบคลุมด้วยตนเอง คุณสามารถใช้ฟังก์ชันนี้ได้ ฟังก์ชัน strrev() ใช้เพื่อย้อนกลับเนื้อหาของสตริง ฟังก์ชัน Strrev ใช้ตรวจสอบลักษณะของสตริง ไม่ว่าสตริงที่กำหนดจะเป็นพาลินโดรมหรือไม่ การใช้งานและแอปพลิเคชันอื่น ๆ อีกหลายอย่างยังมีอยู่ในฟังก์ชันย้อนกลับของสตริง การใช้งานอย่างใดอย่างหนึ่งได้รับด้านล่าง:

#include<stdio.h>

#include<string.h>

int หลัก ()

{

ถ่านชั่วคราว[20]=”ย้อนกลับ”;

printf(“สตริงก่อนการย้อนกลับคือ: %s\n”, ชั่วคราว);

printf(“สตริงหลัง strrev() :%s”, strrev(ชั่วคราว));

กลับ 0;

}

ฟังก์ชันการจัดการสตริงเพิ่มเติมโดยมีวัตถุประสงค์:

ดังที่เราได้กล่าวไว้ก่อนหน้านี้ว่ามี ฟังก์ชันสตริงมากกว่าใน C ฟังก์ชัน อื่นๆ ที่ใช้กันทั่วไปสำหรับการจัดการสตริงใน C ได้แก่:

การทำงาน วัตถุประสงค์
strchr() ส่งคืนตัวชี้ไปยังการเกิดขึ้นครั้งแรกของ char ใน str1
strdup() มันสามารถทำซ้ำสตริง
strset() ตั้งค่าอักขระทั้งหมดของสตริงเป็นอักขระที่กำหนด
strchr() ใช้เพื่อระบุตำแหน่งของอักขระชี้ตำแหน่งตัวแรก

อ่านเพิ่มเติม: คลาสสแกนเนอร์ใน Java: ประเภทของตัวสร้างและเมธอด วิธีใช้งาน

คำพูดสุดท้าย

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

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Java, OOP และการพัฒนาซอฟต์แวร์ฟูลสแตก โปรดดูประกาศนียบัตร PG ของ upGrad & IIIT-B ด้านการพัฒนาซอฟต์แวร์ฟูลสแตก ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง 9 + โครงการและการมอบหมาย สถานะศิษย์เก่า IIIT-B โครงการหลักในทางปฏิบัติและความช่วยเหลือด้านงานกับ บริษัท ชั้นนำ

เตรียมความพร้อมสู่อาชีพแห่งอนาคต

การเรียนรู้ที่เชื่อถือได้ในอุตสาหกรรม - ใบรับรองที่เป็นที่ยอมรับในอุตสาหกรรม
เรียนรู้เพิ่มเติม