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++

Chuỗi (String) là dãy ký tự hoặc mảng tuyến tính của ký tự. Có nhiều phương pháp tìm độ dài chuỗi. Dưới đây là 5 cách khác nhau.

Cách 1: Dùng strlen() (thư viện C)

Trả về số ký tự (không tính null terminator). Cần header <cstring>.

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

int main() {
    char charr[] = "I Love Tutorialspoint";
    int length = strlen(charr);
    cout << "Do dai mang ky tu: " << length;
    return 0;
}
Do dai mang ky tu: 21

Cách 2: Dùng size() (C++ string class)

Trả về số ký tự của đối tượng string. Header <string>.

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

int main() {
    string str = "I love tutorialspoint";
    int length = str.size();
    cout << "Do dai chuoi: " << length;
    return 0;
}
Do dai chuoi: 21

Cách 3: Dùng vòng lặp for

Không cần hàm thư viện. Duyệt mảng cho đến khi gặp '\0'.

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

int main() {
    string str = "I love tutorialspoint";
    int i;
    for(i = 0; str[i] != '\0'; i++) { }
    cout << "Do dai chuoi: " << i;
    return 0;
}
Do dai chuoi: 21

Cách 4: Dùng length() (C++ string class)

Tương tự size(), trả về số ký tự.

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

int main() {
    string str = "I love tutorialspoint";
    int length = str.length();
    cout << "Do dai chuoi: " << length;
    return 0;
}
Do dai chuoi: 21

Cách 5: Dùng vòng lặp while

Dùng bộ đếm trong while, điều kiện dừng != '\0'.

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

int main() {
    string str = "I love tutorialspoint";
    int length = 0;
    while(str[length] != '\0') {
        length++;
    }
    cout << "Do dai chuoi: " << length;
    return 0;
}
Do dai chuoi: 21

So sánh

Phương phápÁp dụng choHeaderGhi chú
strlen()C-style string (char[])<cstring>Hàm C chuẩn
size()std::string<string>Khuyên dùng, O(1)
length()std::string<string>Giống size(), O(1)
for loopCả hai-O(n), học tập
while loopCả hai-O(n), học tập