Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

5 cách tìm độ dài chuỗi trong C++ (Phiên bản 2)

5 phương pháp tính độ dài chuỗi trong C++, bao gồm cả C-style string và C++ string class.

Code tổng hợp

#include <iostream>
#include <cstring>
#include <string>
using namespace std;

int main() {
    string myStr = "This is a sample string";
    char myStrChar[] = "This is a sample string";
    
    // 1. string::length()
    cout << "length(): " << myStr.length() << endl;
    
    // 2. string::size()
    cout << "size(): " << myStr.size() << endl;
    
    // 3. strlen() cho C-string
    cout << "strlen(): " << strlen(myStrChar) << endl;
    
    // 4. Vòng lặp while với con trỏ
    cout << "While loop: ";
    char *ch = myStrChar;
    int count = 0;
    while(*ch != '\0') { count++; ch++; }
    cout << count << endl;
    
    // 5. Vòng lặp for
    cout << "For loop: ";
    count = 0;
    for(int i = 0; myStrChar[i] != '\0'; i++) count++;
    cout << count;
    
    return 0;
}

Kết quả

length(): 23
size(): 23
strlen(): 23
While loop: 23
For loop: 23

So sánh chi tiết

Phương phápLoại chuỗiHeaderĐộ phức tạpKhuyên dùng?
str.length()std::string<string>O(1)✅ Chuẩn C++
str.size()std::string<string>O(1)✅ Tương tự length()
strlen(str)char[] / char*<cstring>O(n)Chỉ cho C-string
while loopchar[] / char*-O(n)Học tập
for loopchar[] / char*-O(n)Học tập

Lưu ý quan trọng

  • std::string::length() và size() là O(1) vì string lưu độ dài.
  • strlen() là O(n) vì phải đếm đến null terminator.
  • Với std::string, luôn dùng length() hoặc size().
  • Với C-string, strlen() là chuẩn, tránh viết loop thủ công.
  • sizeof(arr) trên mảng char[] trả về size bao gồm null terminator, không phải độ dài chuỗi.