#include<stdio.h>
#include<string.h>
#include<conio.h>
int main()
{
// khai bao
char x[20];
char y[20];
char *ptr1,*ptr2;
int i,n;
ptr1=&x[0];
ptr2=&y[0];
// nhap gia tri
printf("Enter the string: ");
scanf("%s",x);
n = strlen(x)-1;
//dao nguoc cac ki tu
for(i=0; i<strlen(x); i++) {
*(ptr1+i)=*(ptr2+n-i);
}
printf("The string is reversed:%s ",y);
return 0;
}
Em bị lỗi gì mà khi chạy ct nó ko hiện ra kết quả mong muốn
Ban loi o vong for kia??
hình như phần preview có vấn đề hay sao mà post của e bị thiếu nhiều quá
Anh ơi, khi post bài, anh làm ơn nêu rõ vấn đề của mình, mình đang làm gì, gặp lỗi ra sao, output mong muốn và output hiện tại, … để mọi người dễ dàng giúp hơn
Mong anh rút kinh nghiệm.
Và anh cũng làm quen với Markdown nha, code sẽ dễ đọc hơn.
Và có thể anh sai ở đây :
for(i = 0; i < strlen(x); i++) {
*(ptr1 + i) = *(ptr2 + n - i);
}
for(i=0; i<strlen(x); i++) {
*(ptr2 + i) = *(ptr1 + n - i);
}
Lý do là vì anh chỉ mới nhập vào ptr1 (x), chứ chưa nhập vào ptr2. Mà lại gán từng phần tử của ptr2 cho ptr => sẽ ra kết quả không như mong muốn vì lúc này ptr2 toàn là giá trị rác
Còn code ở dưới là gán từng phần tử của ptr1 vào ptr2, theo thứ tự nghịch đảo, lúc này ptr2 sẽ giữ nghịch đảo của ptr1
Input:
long
Output:
gnol
Cám ơn bạn mình sửa được rồi
@Phong_Trieu sửa như thế nào thế? Nếu câu trả lời của @nhatlonggunz đúng thì accept câu trả lời của @nhatlonggunz, test tính năng chấp nhận câu trả lời.