01/10/2018, 09:43
So sánh chuỗi trong C++
Chào mọi người, mình có viết 1 hàm để so sánh 2 chuỗi có giống nhau không, cụ thể hàm như sau:
bool SoSanh(string s1, string s2)
{
for (int i = 0; i < s1.size(); i++)
s1[i] = toupper(s1[i]);
for (int i = 0; i < s2.size(); i++)
s2[i] = toupper(s2[i]);
if (s1.compare(s2) == 0)
{
return true;
}
return false;
}
Nhưng khi debug thấy vòng for đầu tiên không đưa s1 thành chữ hoa được. Mọi người xem giúp mình lỗi nằm ở đâu ? Cảm ơn mọi người…
Bài liên quan
Gọi hàm tốn thời gian bạn thử làm s1[i] += 32 xem sao ?
ý bạn là so sánh về độ dài à ?
class string trong C++ nó không cần phải chạy vòng for , nó đã tích hợp r , muốn so sánh thì cho if (s1 == s2) return true else return false là được , độ dài là s.lenght(), các hàm đã được định nghĩa sẵn trong thiw viện string của C++ và string.h của C
Ý mình là so sánh 2 chuỗi nó trùng nhau k ấy. Tại có cả trường hợp là số ví dụ như số điện thoại nữa nên mình k dùng +32
Trong C có hỗ trợ hàm so sánh 2 mảng kí tự char là strcmp , trong C++ thì cũng có hàm so sánh , nhưng mình có thể dùng trực tiếp như 2 biến số ,
VD: string a = “2D team free online education!”;
string b = “2D team”;
thì so sánh 2 chuỗi string có thể dùng if (a==b){…} else{…}