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 cho | Header | Ghi 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 loop | Cả hai | - | O(n), học tập |
| while loop | Cả hai | - | O(n), học tập |