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 โครงการหลักในทางปฏิบัติและความช่วยเหลือด้านงานกับ บริษัท ชั้นนำ