Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ฟังก์ชัน strspn() ในภาษา C

ความหมาย

strspn() คำนวณความยาวของส่วนเริ่มต้น (initial segment) ของ string1 ที่ประกอบด้วยตัวอักษรที่อยู่ใน string2 เท่านั้น

Prototype

size_t strspn(const char *str1, const char *str2);

พารามิเตอร์

  • str1 - string ที่ต้องการตรวจสอบ
  • str2 - string ที่ chứaชุดตัวอักษรที่ยอมรับ (accept set)

คืนค่า

จำนวนตัวอักษรตั้งแต่ต้นของ str1 ที่อยู่ใน str2 ติดต่อกัน (หยุดเมื่อเจอตัวอักษรไม่อยู่ใน str2)

ตัวอย่างโปรแกรม

#include <stdio.h>
#include <string.h>
int main() {
    char string1[20], string2[20];
    int length;
    printf("ป้อน string1: ");
    fgets(string1, sizeof(string1), stdin);
    string1[strcspn(string1, "\\n")] = '\\0';
    printf("ป้อน string2 (ชุดตัวอักษรที่ยอมรับ): ");
    fgets(string2, sizeof(string2), stdin);
    string2[strcspn(string2, "\\n")] = '\\0';
    length = strspn(string1, string2);
    printf("จำนวนตัวอักษรที่ตรงกันตั้งแต่ต้น: %d\\n", length);
    return 0;
}

ผลลัพธ์ตัวอย่าง

ป้อน string1: Tutorials
ป้อน string2: Tutorials Point
จำนวนตัวอักษรที่ตรงกันตั้งแต่ต้น: 9

คำอธิบาย: "Tutorials" มี 9 ตัวอักษร ทุกตัวอยู่ใน "Tutorials Point" จึงคืนค่า 9

ตัวอย่างเพิ่มเติม

strspn("abc123", "abcdef"); // คืนค่า 3 ("abc" อยู่ใน set, "1" ไม่อยู่)
strspn("hello", "helo");     // คืนค่า 5 (ทุกตัวอยู่ใน set)
strspn("hello", "abc");      // คืนค่า 0 (ตัวแรก 'h' ไม่อยู่ใน set)

ฟังก์ชันที่เกี่ยวข้อง

ฟังก์ชันวัตถุประสงค์
strspnนับตัวอักษรตั้งแต่ต้นที่อยู่ใน set
strcspnนับตัวอักษรตั้งแต่ต้นที่ไม่อยู่ใน set (complement)
strpbrkหาตัวอักษรแรกที่อยู่ใน set

การประยุกต์ใช้

  • Validate input: ตรวจสอบว่า string ประกอบด้วยตัวอักษรที่อนุญาตเท่านั้น
  • Parsing: หาตำแหน่งที่เริ่มมีตัวอักษรที่ไม่อนุญาต
  • Tokenizing: แยก token ด้วยชุด delimiter

หมายเหตุ

  • ต้อง include <string.h>
  • คืนค่าเป็น size_t (unsigned integer)
  • ไม่ modify string ต้นฉบับ