ความยาวสตริงในภาษาซี

String Length C Language



สตริงในภาษา C คืออาร์เรย์ของอักขระที่สิ้นสุดด้วยอักขระ null () ความยาวของสตริงคือจำนวนอักขระในสตริง ในความยาวของสตริง ',' อักขระจะไม่ถูกนับ







ในตัวอย่างที่แสดงข้างต้น ความยาวของสตริง NS คือ 6



ในบทช่วยสอนนี้ ก่อนอื่น เราจะแสดงวิธีใช้ a ฟังก์ชันที่ผู้ใช้กำหนด เพื่อคำนวณความยาวของสตริง จากนั้นเราจะแสดงฟังก์ชันไลบรารีในตัว strlen() . นอกจากนี้เรายังแสดงให้คุณเห็นการใช้งานของ ขนาดของ โอเปอเรเตอร์สำหรับตัวอักษรสตริง



ความยาวของสตริงโดยใช้ฟังก์ชันที่ผู้ใช้กำหนด

คุณสามารถเขียนฟังก์ชันที่ผู้ใช้กำหนดซึ่งส่งคืนจำนวนอักขระในสตริง





//Example1.c
#รวม

intstringLength(char *NS)
{
intผม=0;

ในขณะที่(NS[ผม] ! = ' 0')ผม++;

กลับผม;
}

intหลัก()
{
charNS[30]= 'STRING';

printf ('ความยาวของสตริง str คือ => %dNS',stringLength(NS));

กลับ 0;
}

ที่นี่เราวนซ้ำ while loop จาก ผม = 0 จนกว่าเราจะไม่พบ ' 0' อักขระ. คุณค่าของ ผม เพิ่มขึ้นโดย 1 ในการวนซ้ำของ while loop แต่ละครั้ง เมื่อลูปสิ้นสุด ค่าของ ผม คือความยาวของสตริง



ความยาวของสตริงโดยใช้ฟังก์ชันไลบรารีในตัว

ฟังก์ชั่นห้องสมุดในตัว strlen() สามารถใช้กำหนดความยาวของสตริงได้เช่นกัน

ฟังก์ชัน strlen()

ไฟล์ส่วนหัว:

สตริงชม

ไวยากรณ์:

size_t strlen (const char *NS)

การโต้แย้ง: ฟังก์ชันนี้ใช้อาร์กิวเมนต์ของตัวชี้ประเภทเป็นถ่าน

ส่งกลับมูลค่า: ฟังก์ชันนี้จะคืนค่าความยาวของสตริง NS . สังเกตว่า size_t เป็นเพียงนามแฝงของจำนวนเต็มที่ไม่ได้ลงนาม

//Example2.c
#รวม
#รวม

intหลัก()
{
charstr1[30]='สตริงอาร์เรย์';
char *str2;
char *str3;

str2=str1;
str3= 'ตัวชี้สตริง';

printf ('ความยาวของสตริง str1 คือ => %ldNS', strlen (str1));
printf ('ความยาวของสตริง str2 คือ => %ldNS', strlen (str2));
printf ('ความยาวของสตริง str3 คือ => %ldNS', strlen (str3));
printf ('ความยาวของสาย'ตัวอักษรสตริง' คือ => %ldNS', strlen ('สตริงตัวอักษร'));

กลับ 0;
}

ที่นี่ เราส่งสตริงอาร์เรย์ ตัวชี้สตริง และตัวอักษรสตริงไปยังฟังก์ชัน strlen และฟังก์ชันจะคืนค่าความยาวของสตริง

ความยาวของสตริงโดยใช้ sizeof Operator

นอกจากนี้เรายังสามารถใช้ ขนาดของ โอเปอเรเตอร์สำหรับความยาวสตริง (สำหรับตัวอักษรสตริงเท่านั้น) แต่เราต้องลบ 1 ออกจากค่าที่ส่งคืนโดยโอเปอเรเตอร์นี้ เพราะมันนับอักขระ '' ด้วย สำหรับอาร์เรย์และตัวชี้ ตัวดำเนินการ sizeof จะส่งกลับขนาดที่จัดสรรของอาร์เรย์และตัวชี้ตามลำดับ

//Example3.c
#รวม

intหลัก()
{
charstr1[30] = 'STRING';
char *str2=str1;

printf ('ความยาวของ 'STRING' คือ => %dNS',(ขนาดของ('STRING') - 1));
printf ('ขนาดที่จัดสรรของอาร์เรย์ str1 คือ => %dNS',ขนาดของ(str1));
printf ('ขนาดของตัวชี้ str2 คือ => %dNS',ขนาดของ(str2));

กลับ 0;
}

ในบรรทัดที่ 9 เราส่งสตริงตามตัวอักษร STRING และรับขนาด รวมทั้งอักขระ '' ดังนั้นเราจึงลบ 1 และรับขนาดที่แท้จริงของสตริง

เมื่อเราส่งอาร์เรย์ไปยังตัวดำเนินการ sizeof จะคืนค่าขนาดที่จัดสรรของอาร์เรย์ ซึ่งเท่ากับ 30 และเมื่อส่งตัวชี้อักขระจะส่งกลับขนาดของตัวชี้

บทสรุป

ในบทช่วยสอนนี้ เราได้แสดงวิธีการคำนวณความยาวสตริงด้วยวิธีต่างๆ คุณสามารถใช้ในโค้ดของคุณได้ไม่ว่าวิธีใดจะเหมาะสมที่สุดสำหรับคุณ