30/09/2018, 16:09
Cách sử dụng NULL
Code của mình ở trên dùng danh sách liên kết để nhập ký tự từ bàn phím và in ra màn hình những gì đã nhập khi gặp ký tự ' '
.Nhưng khi in ngoài những ký tự đã nhập từ bàn phím trừ ký tự ' '
lại có thêm 1 ký tự phía sau (trên máy mình là ký tự '0'
).Nhờ mọi người fix lại giúp mình.
#include<stdio.h>
#include<stdlib.h>
typedef struct hoc_sinh {
char ky_tu;
struct hoc_sinh *tiep;
}sv;
int main() {
sv *sinh_vien1=NULL,*sinh_vien2=NULL;
char ky_tu1;
do {
if(sinh_vien2==NULL) {
sinh_vien2=(sv*)malloc(sizeof(sv));
sinh_vien1=sinh_vien2;
} else {
sinh_vien2->tiep=((sv*)malloc(sizeof(sv)));
sinh_vien2=sinh_vien2->tiep;
}
ky_tu1=getchar();
if(ky_tu1!=' ') {
sinh_vien2->ky_tu=ky_tu1;
}
sinh_vien2->tiep=NULL;
} while(ky_tu1!=' ');
sinh_vien2=sinh_vien1;
while(sinh_vien2!=0) {
printf("%c",sinh_vien2->ky_tu);
sinh_vien2=sinh_vien2->tiep;
}
return 0;
}
Bài liên quan
Cái này là do chưa có ký tự kết thúc chuỗi đó @14520054. Tìm lại mấy bài chuỗi để xem nhé.
Nhưng em đâu có sử dụng chuỗi đâu.
<space>
.sinh_vien2->ky_tu
sẽ không có gi cả, nên sẽ in ra ký tự rác.a<space>
.sinh_vien2->ky_tu
sẽ không có gì cả, vì bây giờsinh_vien2
đã được tạo mới