การค้นหาดัชนีของตัวอักษรในสตริงโดยใช้ 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 ของคุณดีขึ้น ลองใช้มันในการเขียนโปรเจกต์ครั้งถัดไปของคุณเพื่อดูว่ามันทำให้การค้นหาสตริงของคุณง่ายขึ้นอย่างไร!