Language: C++

#include <bits/stdc++.h>
using namespace std;
 
int main() {
  int N, M;
  cin >> N >> M;
  vector<string> vec(N);
  for(int i = 0; i<N;i++){
    cin >> vec.at(i); 
  }
  for(int i=0;i<N;i++){
    for(int j=0;j<M;j++){
      if(vec.at(i).at(j)=='.'){
        int count;
        if(i>0&&vec.at(i-1).at(j)=='#'){
          count+=1;
        }
        if(i<(N-1)&&vec.at(i+1).at(j)=='#'){
          count+=1;
        }
        if(j>0&&vec.at(i).at(j-1)=='#'){
          count+=1;
        }
        if(j<M-1&&vec.at(i).at(j+1)=='#'){
          count+=1;
        }
        if(i>0&&j>0&&vec.at(i-1).at(j-1)=='#'){
          count+=1;
        }
        if(i>0&&j<M-1 &&vec.at(i-1).at(j+1)=='#'){
          count+=1;
        }
        if(i<N-1&&j>0&&vec.at(i+1).at(j-1)=='#'){
          count+=1;
        }
        if(i<N-1&&j<M-1 &&vec.at(i+1).at(j+1)=='#'){
          count+=1;
        }
        string s;
        s = to_string(s);
        vec.at(i).at(j) = s;
      }
    }
  }
  for(int i = 0;i<N;i++){
  cout << vec.at(i) << endl;
  }
  return 0;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:40:22: error: no matching function for call to 'to_string(std::string&)'
   40 |         s = to_string(s);
      |             ~~~~~~~~~^~~
In file included from /usr/include/c++/14/string:54,
                 from /usr/include/c++/14/bitset:52,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:52,
                 from a.cc:1:
/usr/include/c++/14/bits/basic_string.h:4240:3: note: candidate: 'std::string std::__cxx11::to_string(int)'
 4240 |   to_string(int __val)
      |   ^~~~~~~~~
/usr/include/c++/14/bits/basic_string.h:4240:17: note:   no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'int'
 4240 |   to_string(int __val)
      |             ~~~~^~~~~
/usr/include/c++/14/bits/basic_string.h:4259:3: note: candidate: 'std::string std::__cxx11::to_string(unsigned int)'
 4259 |   to_string(unsigned __val)
      |   ^~~~~~~~~
/usr/include/c++/14/bits/basic_string.h:4259:22: note:   no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'unsigned int'
 4259 |   to_string(unsigned __val)
      |             ~~~~~~~~~^~~~~
/usr/include/c++/14/bits/basic_string.h:4275:3: note: candidate: 'std::string std::__cxx11::to_string(long int)'
 4275 |   to_string(long __val)
      |   ^~~~~~~~~
/usr/include/c++/14/bits/basic_string.h:4275:18: note:   no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'long int'
 4275 |   to_string(long __val)
      |             ~~~~~^~~~~
/usr/include/c++/14/bits/basic_string.h:4294:3: note: candidate: 'std::string std::__cxx11::to_string(long unsigned int)'
 4294 |   to_string(unsigned long __val)
      |   ^~~~~~~~~
/usr/include/c++/14/bits/basic_string.h:4294:27: note:   no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'long unsigned int'
 4294 |   to_string(unsigned long __val)
      |             ~~~~~~~~~~~~~~^~~~~
/usr/include/c++/14/bits/basic_string.h:4310:3: note: candidate: 'std::string std::__cxx11::to_string(long long int)'
 4310 |   to_string(long long __val)
      |   ^~~~~~~~~
/usr/include/c++/14/bits/basic_string.h:4310:23: note:   no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'long long int'
 4310 |   to_string(long long __val)
      |             ~~~~~~~~~~^~~~~
/usr/include/c++/14/bits/basic_string.h:4327:3: note: candidate: 'std::string std::__cxx11::to_string(long long unsigned int)'
 4327 |   to_string(unsigned long long __val)
      |   ^~~~~~~~~
/usr/include/c++/14/bits/basic_string.h:4327:32: note:   no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'long long unsigned int'
 4327 |   to_string(unsigned long long __val)
      |             ~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/14/bits/basic_string.h:4401:3: note: candidate: 'std::string std::__cxx11::to_string(float)'
 4401 |   to_string(float __val)
      |   ^~~~~~~~~
/usr/include/c++/14/bits/basic_string.h:4401:19: note:   no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'float'
 4401 |   to_string(float __val)
      |             ~~~~~~^~~~~
/usr/include/c++/14/bits/basic_string.h:4411:3: note: candidate: 'std::string std::__cxx11::to_string(double)'
 4411 |   to_string(double __val)
      |   ^~~~~~~~~
/usr/include/c++/14/bits/basic_string.h:4411:20: note:   no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'double'
 4411 |   to_string(double __val)
      |             ~~~~~~~^~~~~
/usr/include/c++/14/bits/basic_string.h:4421:3: note: candidate: 'std::string std::__cxx11::to_string(long double)'
 4421 |   to_string(long double __val)
      |   ^~~~~~~~~
/usr/include/c++/14/bits/basic_string.h:4421:25: note:   no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'long double'
 4421 |   to_string(long double __val)
      |             ~~~~~~~~~~~~^~~~~
a.cc:41:27: error: cannot convert 'std::string' {aka 'std::__cxx11::basic_string<char>'} to '__gnu_cxx::__alloc_traits<std::allocator<char>, char>::value_type' {aka 'char'} in assignment
   41 |         vec.at(i).at(j) = s;
      |                           ^
      |                           |
      |                           std::string {aka std::__cxx11::basic_string<char>}