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óeofcó 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ác32làspacethì nó khôngputcharin ra không thì ngược lại.Rồi khi mà hết rồi là
eofthì return kết thúc thôi###2
Cái này thì mình sẽ dùng
\nthay thế cho32put: đặt vào
putchar: đặt ký tự vào
=>
putchar(ahjhj): in ký tựahjhjra 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ếnnhapnhưng mình cũng đoán đượcnhaplà kiểu charEOFlà ký tự được tạo ra khi ấnCtrl ZhoặcF6Như vậy, đoạn chương trình của bạn được diễn tả như sau:
nhap= getchar() ) và (nhapkhác EOS)nhapkhác “khoảng trống”)nhapTừ đâ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à (nhapkhác EOS)nhap