#include<stdio.h> #include<string.h> char map[35][85]; int vis[35][85]; int dx[] = {1, -1, 0, 0}, dy[] = {0, 0, -1, 1}; int k; int w[35]; void dfs(int x,int y){ vis[x][y]=1; for(int i = 0;i < 4; i++){ int nx = x + dx[i]; int ny = y + dy[i]; if(nx >= 0 && nx < k && ny >= 0 && ny < w[nx] && vis[nx][ny] ==0 &&map[nx][ny] == ' '){ dfs(nx,ny); } } }//深搜,将所有为' '的地方标记为1。 int main() { int n; scanf("%d", &n); getchar(); while(n--){ k = 0; memset(vis,0,sizeof(vis)); while(gets(map[k])){ w[k] = strlen(map[k]); if(strcmp(map[k],"_____")==0) break; k++; } for(int i = 0;i < k; i++){ for(int j = 0;j < w[i]; j++){ if(vis[i][j] == 0 && map[i][j] == '*'){ dfs(i,j); } } } for(int i = 0;i <= k; i++){ for(int j = 0;j < w[i]; j++){ if(vis[i][j] == 1) printf("#"); else printf("%c",map[i][j]); } printf("\n"); } } return 0; }