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]);
}
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