ค้นหาความยาวของสตริง

C++:
ค้นหาความยาวของสตริง

วิธีการ:

C++ มอบวิธีที่ตรงไปตรงมาในการค้นหาความยาวของสตริงโดยใช้เมธอด length() ของคลาส std::string แต่ถ้าคุณเป็นสายคลาสสิก คุณยังคงสามารถใช้สตริงแบบ C และ strlen() ต่อไปนี้คือตัวอย่างทั้งสองวิธี:

#include <iostream>
#include <string>
#include <cstring>

int main() {
    // ใช้ std::string
    std::string greeting = "Hello, World!";
    std::cout << "ความยาวของสตริง (std::string): " << greeting.length() << std::endl;

    // ใช้สตริงแบบ C
    const char *c_greeting = "Hello, World!";
    std::cout << "ความยาวของสตริง (สไตล์ C): " << strlen(c_greeting) << std::endl;

    return 0;
}

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

ความยาวของสตริง (std::string): 13
ความยาวของสตริง (สไตล์ C): 13

การศึกษาเพิ่มเติม:

เดิมที C++ ได้รับอาร์เรย์อักขระแบบ C และฟังก์ชัน strlen() จาก C strlen() คำนวณความยาวโดยเดินผ่านอาร์เรย์จนกระทั่งไปถึงอักขระ null, '\0'. นี่เป็นกลยุทธ์ที่ง่ายแต่มีประสิทธิภาพ แต่ไม่สามารถเอาชนะประสิทธิภาพของ std::string.length() ซึ่งโดยทั่วไปจะเก็บความยาวไว้เพื่อการเรียกใช้ที่รวดเร็ว

มีทางเลือกอื่นไหม? แน่นอน:

  • คุณยังสามารถใช้เมธอด size(), ที่เหมือนกับ length() สำหรับ std::string
  • สำหรับสตริงอักขระแบบกว้าง, std::wstring และเมธอด length() ของมันจะเป็นตัวช่วย
  • ตัวเลือกที่น่าระทึกขวัญ ได้แก่ ฟังก์ชันที่กำหนดเองหรือการใช้อัลกอริทึ่มเช่น std::distance กับตัวนำไปใช้

แต่ควรระวัง, std::string::length() คืนค่าเป็นชนิด size_t, ซึ่งเป็นจำนวนเต็มที่ไม่มีเครื่องหมาย, ซึ่งอาจทำให้คุณประสบกับพฤติกรรมที่ไม่คาดคิดหากคุณผสมมันกับชนิดที่มีเครื่องหมายในนิพจน์

อ่านเพิ่มเติม: