Code
#include <cstdio>
int n, m;
int flag[110][110];
char map[110][110];
int main(){
scanf("%d%d", &n, &m);
for (int i = 0; i < n; ++i) {
scanf("%s", map[i]);
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
if (map[i][j] == '*') {
flag[i][j] = -1;
continue;
}
for (int dx = -1; dx <= 1; ++dx) {
for (int dy = -1; dy <= 1; ++dy) {
if (dx == 0 && dy == 0) continue;
int x = i + dx, y = i + dy;
if (x >= 0 && x < n && y >= 0 && y < m) {
if (map[x][y] == '*') flag[i][j]++;
}
}
}
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
if (map[i][j] == '*') printf("*");
else printf("%d", flag[i][j]);
}
printf("\n");
}
}