ข้อกำหนดเบื้องต้น
ก่อนตรวจสอบตัวอย่างของบทช่วยสอนนี้ คุณต้องตรวจสอบก่อนว่าคอมไพเลอร์ g++ ติดตั้งหรือไม่อยู่ในระบบ หากคุณกำลังใช้ Visual Studio Code ให้ติดตั้งส่วนขยายที่จำเป็นเพื่อคอมไพล์ซอร์สโค้ด C++ เพื่อสร้างโค้ดที่เรียกใช้งานได้ ที่นี่ แอปพลิเคชัน Visual Studio Code ถูกใช้เพื่อคอมไพล์และรันโค้ด C++
คุณสมบัติของฟังก์ชัน find_first_of()
NS find_first_of() ฟังก์ชันสามารถคืนค่าตัวแปรประเภทต่างๆ ตามค่าของอาร์กิวเมนต์แรก จะส่งคืนตำแหน่งการค้นหาของสตริงหากค่าอาร์กิวเมนต์แรกเป็นสตริง มันจะส่งคืนตำแหน่งการค้นหาของสตริงอักขระหากตัวชี้ไปยังอาร์เรย์ของอักขระได้รับในอาร์กิวเมนต์แรก มันจะส่งคืนตำแหน่งบัฟเฟอร์หากได้รับค่าของอาร์กิวเมนต์ที่สาม จะส่งคืนตำแหน่งอักขระหากระบุอักขระในอาร์กิวเมนต์แรกและมีอยู่ในสตริงหลัก ตำแหน่งเริ่มต้นของการค้นหาถูกกำหนดไว้ในอาร์กิวเมนต์ที่สองของฟังก์ชันนี้ ไวยากรณ์ต่างๆ ของฟังก์ชันนี้แสดงไว้ด้านล่าง
ไวยากรณ์
สตริง size_t find_first_of (สตริง const& str, size_t pos = 0) const;
c-string size_t find_first_of (const ถ่าน* s, size_t pos = 0) const;
บัฟเฟอร์ size_t find_first_of (const ถ่าน* s, size_t pos, size_t n) const;
อักขระ size_t find_first_of (ถ่าน c, size_t pos = 0) const;
ตัวอย่างที่ 1: ค้นหาและแทนที่อักขระเฉพาะของสตริง
ตัวอย่างต่อไปนี้แสดงวิธีการค้นหาตำแหน่งของอักขระเฉพาะในสตริง สร้างไฟล์ C++ ด้วยรหัสต่อไปนี้เพื่อแทนที่อักขระเฉพาะด้วยอักขระอื่น ในรหัส find_first_of() ฟังก์ชันถูกใช้เพื่อค้นหาตำแหน่งทั้งหมดของอักขระเฉพาะในสตริงและแทนที่อักขระด้วยอักขระอื่นโดยใช้ลูป สตริงเดิมและสตริงที่แทนที่จะถูกพิมพ์หลังจากรันโค้ด
//รวมสำหรับพิมพ์ผลลัพธ์
#รวม
// รวมสำหรับการใช้ size_t
#รวม
intหลัก()
{
//เริ่มต้นตัวแปรสตริง
ชั่วโมง::สตริงstrData('ยินดีต้อนรับสู่ LinuxHint');
//พิมพ์สตริงเดิม
ชั่วโมง::ค่าใช้จ่าย << 'สตริงเดิมคือ:' +strData<< 'NS';
// ค้นหาตำแหน่งทั้งหมดของตัวละคร 'i'
ชั่วโมง::size_tค้นหารายการ=strDatafind_first_of('ผม');
//วนซ้ำเพื่อแทนที่ 'i' ทั้งหมดด้วย '@'
ในขณะที่ (ค้นหารายการ!=ชั่วโมง::สตริง::นโป้)
{
strData[ค้นหารายการ] = '@';
ค้นหารายการ=strDatafind_first_of('ผม',SearchList+1);
}
//พิมพ์สตริงที่แก้ไข
ชั่วโมง::ค่าใช้จ่าย << 'สตริงที่แก้ไขคือ: ' +strData<< 'NS';
กลับ 0;
}
เอาท์พุท:
ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันโค้ดด้านบน
ตัวอย่างที่ 2: ค้นหาตำแหน่งแรกของอักขระค้นหา
สร้างไฟล์ C++ ด้วยรหัสต่อไปนี้เพื่อค้นหาตำแหน่งของสตริงที่มีอักขระหลายตัวและส่งคืนตำแหน่งแรกของอักขระที่ตรงกับสตริงหลัก ข้อมูลสตริงถูกกำหนดในตัวแปรสตริง และตำแหน่งแรกจะถูกเก็บไว้ในตัวแปรจำนวนเต็ม ค่าตำแหน่งจะถูกพิมพ์หลังจากรันโค้ด
//รวมสำหรับพิมพ์ผลลัพธ์#รวม
intหลัก()
{
// เริ่มต้นตัวแปรสตริง
ชั่วโมง::สตริงstrData( 'การเขียนโปรแกรม C++ ขั้นพื้นฐาน');
// ประกาศตัวแปร interger เพื่อเก็บตำแหน่ง
intตำแหน่ง;
// ค้นหาอักขระ 'C++'
ตำแหน่ง=strDatafind_first_of( 'เค ++' );
// ตรวจสอบค่าตำแหน่ง
ถ้า (ตำแหน่ง> = 0)
{
// พิมพ์ตำแหน่งหากพบอักขระใด ๆ
ชั่วโมง::ค่าใช้จ่าย << 'บทบาท '' <<strData[ตำแหน่ง]
<< ''เจอแล้ว'' << ' ณ ตำแหน่ง ' <<ตำแหน่ง<< 'NS';
}
กลับ 0;
}
เอาท์พุท:
ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันโค้ดด้านบน ที่นี่ตัวละคร ' + ' ของสตริง ' เค ++ ’ ได้พบที่ตำแหน่ง 7 ของสายหลัก ' การเขียนโปรแกรม C++ ขั้นพื้นฐาน '.
ตัวอย่างที่ 3: ค้นหาอักขระเฉพาะหลังจากตำแหน่งเฉพาะ
สร้างไฟล์ C++ ด้วยรหัสต่อไปนี้เพื่อค้นหาอักขระเฉพาะหลังจากตำแหน่งนั้น ๆ ข้อมูลสตริงถูกเก็บไว้ในตัวแปรสตริง และสตริงเฉพาะจะถูกค้นหาหลังจากตำแหน่ง 13 หากพบอักขระใดๆ ของสตริงการค้นหาในสตริงหลัก ค่าตำแหน่งจะถูกส่งคืน
//รวมสำหรับพิมพ์ผลลัพธ์#รวม
intหลัก()
{
//เริ่มต้นตัวแปรสตริง
ชั่วโมง::สตริงstrData= 'กินเพื่ออยู่ ไม่ได้อยู่เพื่อกิน';
//พิมพ์สตริงเดิม
ชั่วโมง::ค่าใช้จ่าย << 'สตริงเดิมคือ:' +strData<< 'NS';
//พิมพ์ตำแหน่งที่พบอักษรตัวสุดท้าย
ชั่วโมง::ค่าใช้จ่าย<<'พบอักขระที่ตรงกันตัวสุดท้ายในตำแหน่ง :'
<<strDatafind_first_of('ที่',13) << 'NS';
กลับ 0;
}
เอาท์พุท:
ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันโค้ดด้านบน ที่นี่ตัวละคร ' ถึง ' ของสตริง ' ที่ ’ ได้พบที่ตำแหน่ง สิบห้า ของสายหลัก ' กินเพื่ออยู่ ไม่ได้อยู่เพื่อกิน '.
ตัวอย่างที่ 4: ค้นหาตำแหน่งของหมายเลขที่ตรงกันครั้งแรก
สร้างไฟล์ C++ ด้วยรหัสต่อไปนี้เพื่อค้นหาแต่ละหมายเลขของรายการเวกเตอร์แรกในรายการเวกเตอร์ที่สอง และส่งคืนตำแหน่งของหมายเลขที่ตรงกันของรายการเวกเตอร์แรก หากพบอาร์กิวเมนต์ที่ตรงกัน ค่าตำแหน่งจะถูกส่งคืน มิฉะนั้นจะมีการพิมพ์ข้อความ
//รวมสำหรับพิมพ์ผลลัพธ์#รวม
//รวมสำหรับการค้นหาข้อมูลใน vector
#รวม
// รวมสำหรับการใช้ข้อมูลเวกเตอร์
#รวม
intหลัก()
{
//ประกาศรายการเวกเตอร์สองรายการ
ชั่วโมง::เวกเตอร์รายการ1{10,5,65,31,7};
ชั่วโมง::เวกเตอร์รายการ2{2,77,5,38,32,55};
// ค้นหาข้อมูลของ list1 ลงใน list2
รถยนต์ผลผลิต=ชั่วโมง::find_first_of(รายการ1.เริ่ม(), รายการ1.จบ(), รายการ2.เริ่ม(), รายการ2.จบ());
// อ่านตำแหน่งของตัวเลขที่ตรงกัน
intตำแหน่ง=ชั่วโมง::ระยะทาง(รายการ1.เริ่ม(), เอาท์พุท);
// ตรวจสอบจำนวนใด ๆ ของ list1 ที่ตรงกับ list2 . จำนวนเท่าใดก็ได้
ถ้า (ผลผลิต<รายการ1.จบ()) {
ชั่วโมง::ค่าใช้จ่าย << 'หมายเลขที่ตรงกันครั้งแรก' <<รายการ1[ตำแหน่ง] << ' พบที่ตำแหน่ง ' <<ตำแหน่ง<< 'NS';
}
อื่น {
ชั่วโมง::ค่าใช้จ่าย << 'ไม่พบหมายเลขที่ตรงกันNS';
}
}
เอาท์พุท:
ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันโค้ดด้านบน ค่าตัวเลข 5 ของอาร์เรย์แรกมีอยู่ในอาร์เรย์ที่สองและตำแหน่งของตัวเลขนี้คือ 1
บทสรุป
ฟังก์ชัน find_first_of() สามารถใช้เพื่อค้นหาอักขระหรือตัวเลขเพื่อวัตถุประสงค์ในการเขียนโปรแกรมต่างๆ ฟังก์ชันนี้สามารถใช้เพื่อแก้ปัญหาการค้นหาต่างๆ ฉันหวังว่าโปรแกรมเมอร์ C++ จะสามารถใช้ฟังก์ชันนี้ได้อย่างถูกต้องหลังจากอ่านบทช่วยสอนนี้