Nhập xuất mảng 2 chiều trong C

Em đang làm 1 bài tập về chuẩn hóa xâu ký tự. Sau khi viết code thì thấy báo lỗi như này.
Em nghĩ mình bị sai ở phần nhập mảng 2 chiều. Có ai biết cách sửa như thế nào cho đúng không ạ.

#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
int main(){
int d;
scanf("%d",d);
char a[50][100];
int i,j,k=0;
for (i=0;i<d;i++){
	for(j=0;j<50;j++){
		gets(a);
		while(a[0][i]==' '){
		strcpy(&a[0][i],&a[1][i]);
	}
	for(j=0;j<50;j++){
		if(a[j][i]==' '){
			if(a[j+1][i]==' '){
			strcpy(&a[j][i],&a[j+1][i]);
			continue;
		}
		else{
			printf("%c",toupper(a[j][i]));
			k=k+1;
		}
	}
		else{
			printf("%c",toupper(a[j][i]));
			k=k+1;
		}
	}
	}
	printf("%d",k);
}

return 0;
}


cảm ơn mọi người rất nhiều.

Hàm gets() nhận vào mảng kí tự 1 chiều, bạn lại truyền vào mảng 2 chiều.

3 Likes

vậy em nên dùng cách nào để truyền vào mảng 2 chiều ạ. Em mới học đến phần này mà thấy mông lung quá.

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