01/10/2018, 11:04
Ngôn ngữ C, sao chép nội dung nhập vao
Chào cả nhà, đây là chương trình sao chép nội dung nhập vào, khi in ra là bỏ khoảng trống.
char nhap;
while((nhap = getchar())!= EOF)
if (nhap!=32)
putchar(nhap);
return 0;
Cho mình hỏi 2 câu hỏi:
- dòng if: nhap != 32, nghĩa là gì vậy, tại sao phải khác khoảng trắng ( mình hiểu 32 là khoảng trắng).
2) vậy nếu muốn sao chép nguyên cả nội dung mà KHÔNG MUỐN BỎ khoảng trắng thì mình phải làm sao
Cảm ơn cả nhà.
Bài liên quan
###1
khi bạn dùng
Sau đó nó sẽ đợi bạn nhập cái gì đó. Nếu bạn nhập vào
Thì nguyên cái đống đó vào buffer. Hãy tưởng tượng cái đống đó là một chuỗi
Và rồi,
getchar()
lấy một kí tự trong buffer tới khi nào nóeof
có nghĩa là không còn gì mà nhận. Sau đó biếnnhap
được nhận từng chữ cái trong chuỗi đó. Nếu nó khác32
làspace
thì nó khôngputchar
in ra không thì ngược lại.Rồi khi mà hết rồi là
eof
thì return kết thúc thôi###2
Cái này thì mình sẽ dùng
\n
thay thế cho32
put: đặt vào
putchar: đặt ký tự vào
=>
putchar(ahjhj)
: in ký tựahjhj
ra màn hìnhhàm
getchar()
trả về kiểu char, nên tuy mình không thấy dòng khai báo biếnnhap
nhưng mình cũng đoán đượcnhap
là kiểu charEOF
là ký tự được tạo ra khi ấnCtrl Z
hoặcF6
Như vậy, đoạn chương trình của bạn được diễn tả như sau:
nhap
= getchar() ) và (nhap
khác EOS)nhap
khác “khoảng trống”)nhap
Từ đây, bạn suy ra rằng nếu muốn chương trình in ra cả khoảng trắng thì tức là không kiểm tra khoảng trắng nữa:
nhap
= getchar() ) và (nhap
khác EOS)nhap