Làm thế nào để nhập từng kí tự cho mảng char?

Làm thế nào để nhập từng kí tự cho mảng char trong C ạ.em nhập 1 kí tự nó lại chiếm 2 ô trong mảng ạ

int n,i=0;
	scanf("%d",&n);
	char s[n];
	for(i;i<n;i++){
		printf("%d",i);
		scanf("%c",&s[i-1]);
	}

Tạm thời mình chưa có cách hay hơn nhưng bạn có thể khai báo thêm 1 biến:
char a;
Sau đó trong vòng for sử dụng:
scanf("%c",&a);
s[i]=a;
Nhưng có 1 vấn đề là bạn phải tìm hiểu cách xử lý ký tự xuống dòng, nếu không mảng s sẽ lưu cả ký tự xuống dòng.
Có thể dùng:
scanf("%c",&a);
getchar();
s[i]=a;

scanf có một tính năng ẩn là có thể bỏ qua các ký tự “trống” bằng cách thêm một khoảng trắng trước kiểu cần đọc
=> Bạn chỉ cần sửa lại thành scanf(" %c", &s[i]) là được

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?