Какая ошибка в записи программы? empty character constant

#include <iostream>
#include <string>
using namespace std;
int main()
{
    const string a=' ',',';
    const string b='m','M';
    const string c='a','A'
    setlocale(LC_ALL, "Russian");
    string s,k;
    int l,x,i;
    cout << "Введите строку" << endl; cin>>s;
    l=s.length();
    if(l!=0){
   x= 0;
   k= ' ';
   for (i= 1; i<l; i++)
   {
       if( s[i] =a) {k= '';}
       if ( k <> '' ){ k:= k + s[i];}
     if ( i = 1 ) && (( s[i] = b)) {k:= s[i];}
     if (( str[i-1] =a))
        && (( str[i] =b))&& ( k = ' ' ) { k:= s[i];}
     if (( s[i] =c)) && (( s[i+1] = a) ||
         ( s[i+1] = '.') || ( i = l ))
          && ( k != '' ){cout <<"k";
              k= '';}}
    if(x=0) then cout<<"Слов нет"<<endl;
    return 0;
    }
}

После запуска программы выдаёт данную ошибку: error: empty character constant.

Не после запуска, а при компиляции.

Видимо дело в

и т.п. дальше.

В С++ для строк используются "", а для символов ''.

char c = 'a';
string s = "abc";

Так что определяйтесь что вам где надо, приводите типы переменных и кавычки в соответствие.

Если я правильно Вас понял, то необходимо любой символ( например пробел и знаки препинания) выделять " " , a остальные буквы в строках ’ ’ ?

Зависит от ситуации. Нельзя присвоить string в char и наоборот, нельзя сравнить char со string (только с элементами string, например str[i]) и т.д.