การค้นหาดัชนีของตัวอักษรในสตริงโดยใช้ C
เมื่อทำงานกับสตริงใน C มันไม่ใช่เรื่องแปลกที่คุณต้องการทราบ ดัชนีของตัวอักษรเฉพาะ ภายในสตริงนั้น วิธีการค้นหาตามปกติที่ใช้ฟังก์ชัน strstr
จะให้พอยเตอร์ที่ตำแหน่งที่ตัวอักษรถูกพบ แต่ถ้าคุณกำลังมองหาตำแหน่งที่แน่นอนของตัวอักษรนั้น คุณอาจจะรู้สึกสับสนโชคดีที่มีวิธีแก้ไข! มาทำความเข้าใจเกี่ยวกับวิธีที่คุณสามารถกำหนดดัชนีของตัวอักษรในสตริงได้อย่างถูกต้องโดยใช้ฟังก์ชัน strcspn
การทำความเข้าใจปัญหา
ในการเขียนโปรแกรม C การจัดการกับสตริงอาจกลายเป็นเรื่องซับซ้อนได้เมื่อใดก็ตามที่คุณต้องการหาตัวอักษรเฉพาะในสตริง และคุณต้องการ ตำแหน่ง แทนที่จะเป็นพอยเตอร์ คุณอาจสงสัยว่าเครื่องมือใดบ้างที่พร้อมใช้งานในห้องสมุดมาตรฐาน คุณอาจเคยได้ยินเกี่ยวกับฟังก์ชันต่างๆ เช่น strstr
ซึ่งจะส่งคืนพอยเตอร์ไปยังการเกิดขึ้นครั้งแรกของซับสตริง แต่สิ่งนี้ไม่ได้บอกคุณโดยตรงเกี่ยวกับดัชนีของตัวอักษรเดี่ยว
วิธีการแก้ปัญหา: การใช้ strcspn
ฟังก์ชัน strcspn
ค่อนข้างมีประโยชน์ในการค้นหาดัชนีของตัวอักษรในสตริง นี่คือวิธีการทำงานของมัน:
strcspn
คืออะไร?
strcspn
เป็นฟังก์ชันในห้องสมุดมาตรฐานที่กำหนดไว้ใน string.h
มันคำนวณความยาวของส่วนเริ่มต้นของ str1
ที่ประกอบด้วยตัวอักษรที่ไม่พบใน str2
เท่านั้น นี่หมายความว่ามันจะส่งคืน ดัชนี ของการเกิดขึ้นครั้งแรกของตัวอักษรใดๆ ที่กำหนดใน str2
ภายใน str1
โพรโทไทป์ฟังก์ชัน
size_t strcspn (const char * str1, const char * str2);
ตัวอย่างการใช้งาน
นี่คือตัวอย่างการใช้งานที่คุณสามารถใช้ strcspn
เพื่อตรวจสอบดัชนีของตัวอักษรในสตริง:
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] = "fcba73"; // สตริงที่เรากำลังค้นหา
char keys[] = "1234567890"; // ตัวอักษรที่เรากำลังค้นหา
int i;
// ค้นหาดัชนีของตัวอักษรแรกจาก keys ใน str
i = strcspn(str, keys);
// แสดงผลตำแหน่ง โดยบวก 1 เพื่อเปลี่ยนจากดัชนีเริ่มต้นที่ศูนย์เป็นดัชนีเริ่มต้นที่หนึ่ง
printf("ตัวเลขแรกใน str อยู่ที่ตำแหน่ง %d.\n", i + 1);
return 0;
}
คำอธิบายของโค้ด
- เราได้รวมไฟล์ header ที่จำเป็น:
stdio.h
สำหรับฟังก์ชันการป้อนข้อมูล/การแสดงผล และstring.h
สำหรับฟังก์ชันการจัดการกับสตริง - เราได้กำหนดสตริง
str
และตัวอักษรที่เราต้องการค้นหาในkeys
- การเรียกใช้
strcspn(str, keys)
จะส่งคืนดัชนี (เริ่มต้นที่ศูนย์) ของการเกิดขึ้นครั้งแรกของตัวอักษรใดๆ จากkeys
ที่พบในstr
- ในที่สุด ผลลัพธ์ก็จะแสดงผล โดยปรับให้เข้ากับการแสดงผลที่อ่านได้สำหรับมนุษย์ (ดัชนีเริ่มต้นที่หนึ่ง)
ข้อคิดที่สำคัญ
strcspn
ดีมากในการหาดัชนีของการเกิดขึ้นครั้งแรกของตัวอักษร- จำเป็นต้องปรับผลลัพธ์สำหรับการแสดงผลที่เป็นมิตรต่อผู้ใช้
บทสรุป
การค้นหาดัชนีของตัวอักษรในสตริงสามารถทำได้ง่ายโดยใช้ฟังก์ชัน strcspn
ฟังก์ชันนี้ช่วยให้คุณสามารถค้นหาตำแหน่งที่ตัวอักษรปรากฏอยู่ในสตริงได้อย่างราบรื่น ช่วยให้การจัดการกับสตริงในโปรแกรม C ของคุณดีขึ้น ลองใช้มันในการเขียนโปรเจกต์ครั้งถัดไปของคุณเพื่อดูว่ามันทำให้การค้นหาสตริงของคุณง่ายขึ้นอย่างไร!