

Giải bài tập C về con trỏ
Giúp em với ạ
Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
`C`
`" "`
#include <stdio.h>
#include <string.h>
int main() {
char s[100];
char *d, *c;
printf("Nhap chuoi: ");
fgets(s, sizeof(s), stdin);
s[strcspn(s, "\n")] = '\0';
d = s;
c = s + strlen(s) - 1;
while(d < c && *d == *c) {
d++;
c--;
}
if(d >= c)
printf("Chuoi la palindrome");
else
printf("Chuoi khong phai palindrome");
return 0;
}
`" "`
`-` fgets(s, sizeof(s), stdin): Nhập chuỗi, dùng fgets thay scanf để đọc được chuỗi có dấu cách.
`-` s[strcspn(s, "\n")] = '\0': Xóa ký tự Enter '\n' do fgets tự động thêm vào, thay thành ký tự kết thúc chuỗi '\0'
`-` d = s: d trỏ tới ký tự đầu tiên của chuỗi, vì tên mảng s chính là địa chỉ phần tử đầu
`-` c = s + strlen(s) - 1: c trỏ tới ký tự cuối cùng, vì strlen(s) là độ dài chuỗi, trừ 1 vì chỉ số bắt đầu từ 0
`-` while(d < c && *d == *c): Duyệt từ hai đầu vào giữa, *d là ký tự d đang trỏ tới, *c là ký tự c đang trỏ tới. Dừng lặp khi gặp cặp ký tự khác nhau hoặc đã duyệt hết
`-` d++, c--: Tiến d sang phải, lùi c sang trái
`-` if(d >= c): Nếu d và c đã gặp nhau hoặc vượt qua nhau thì toàn bộ cặp ký tự đều khớp → Chuỗi là palindrome.
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin