void daoNguocTu(char a[], char b[],char c[])
{
int j = 0;
int k = 0;
int length = strlen(a);
for (int i = 0; i <= length; i++)
{
if (a[i] != ' ')
{
b[j] = a[i];
j++;
}
else
{
b[j] = '\0';
_strrev(b);
strcat(c, b);
strcat(c, " ");
j = 0;
remove;
}
}
puts(c);
}
Code đảo ngược các kí tự của mỗi từ trong chuỗi cho kết quả của em thiếu mất một từ
bạn làm phức tạp thế, sao không chạy như thế này:
for(i=0;i<len(a);i++) b[i] = a[len(a)-i-1];
Mỗi từ trong chuỗi mà bạn?
Up cả code lên đây xem nào. Chắc chắn lúc nạp vào hàm này bạn thiếu mất 1 từ.
Nạp không thiếu, nhưng cái điều kiện của mình dựa vào dấu cách nên từ cuối cùng nó không thực hiện được, mình không biết sửa điều kiện như thế nào cho đúng
Thêm dấu cách vào cuối a trước khi gán length, và chạy vòng for đến < length thôi.
Giả sử người dùng không nhập dấu cách ở cuối chuỗi a =))
Đừng giả sử. Kiểm tra xem người dùng có nhập dấu cách ở cuối hay không đã.
Nhưng mà làm gì có ai nhập thêm dấu cách cuối cùng làm gì đâu :((
Thế tóm lại là chỉ cần thêm dấu cách vào cuối để xử lí thôi chứ có gì đâu phải lăn tăn.
Người nhập luôn luôn đúng mà =))
Sai bét. Mình nhập vào thế này:
" ai bao la nguoi nhap luon luon dung "
Bạn có chắc là tất cả mọi người dùng đều nghiêm túc không?
Mình chỉ muốn sửa code đúng cho trường hợp, không muốn sửa theo cách nhập của bạn
Thớt dựa vào hàm hơi nhiều. Còn chèn vào chuỗi mà gặp const là tiêu.
Nhìn theo trạng thái thì bài này có hai trạng thái là whiteSpace và Word. Để vào & giữ trạng thái S thì phải có whitespace. Định nghĩa như vậy là vì chỉ có whitespace với non-whitespace.
Vậy có thể hướng cho mình cách làm dễ hiểu hơn được không ạ
Sửa điều kiện là khác space hoặc khác NULL