Hi mọi người. Mình đang làm 1 bài tập về chuỗi nhưng code bị lỗi, không tìm ra được.
Đề bài: Cho 1 chuỗi, hãy đảo ngược thứ tự từng ký tự trong từng từ của chuỗi.
VD: Hoc Lap Trinh
=> Đảo lại là: hnirT paL coH
Source code: http://codepad.org/IRqB53Sr
#include <iostream>
#include <string>
using namespace std;
int StrWrdLen(string s, int vitri) // hàm này dùng để đếm số ký tự có trong 1 từ của chuỗi s
{
int Dem = 0;
for (int i = vitri;; i++)
{
if (s[i] != 32)
Dem++;
else
break;
}
return Dem;
}
void HoanVi(char &x, char &y)
{
char Temp = x;
x = y;
y = Temp;
}
int main()
{
string s = "Tu Canh Minh";
int length = s.length();
int lenwrd, end;
if (s[0] != 32)
{
lenwrd = StrWrdLen(s, 0);
end = lenwrd - 1;
}
for (int i = 0; i < length; i++)
{
if (i > 0 && s[i - 1] == 32 && s[i] != 32)
{
lenwrd = StrWrdLen(s, i);
end = lenwrd - 1;
}
if (i >= lenwrd / 2)
continue;
HoanVi(s[i], s[end--]);
}
cout << "\nChuoi sau khi dao nguoc ky tu tung tu: " << s << endl;
system("pause");
return 0;
}
Nhưng khi compile và chạy, code em bị lỗi như tấm hình dưới này:
Ai rành giúp em nhé ! Xin cảm ơn !