hay un problema... string no es realmente compatible con char... la cosa es usar uno u otro, sin embargo si quieres convertir de string a char es
strcpy(char_variable, string_variable.c_str());
ahora a los errores en tu codigo
error 1: strlen está en la librería <cstring> que no es lo mismo que <string> (ni es directamente compatible con) declarala si quieres usar esa funcion
error 2: al main no le veo return... debe tenerlo...
error 3: pusiste string trim(cCadena) al aire en tu codigo no está haciendo nada... ella retorna un string...
error 4: no usar gets, se asume descontinuado y en standard c11 fue eliminado definitivamente, usa fgets que es el más similar (revisa como se usa) o cin (de iostream) más comodo para leer desde consola
error 5: la linea 37 hace del siguien if suyo y al estar relacionada con "i" posiblemente genere error
error 6: cCad nunca fue usado, aún así lo metes en un if
sobre mi código, veo que no lo entendiste del todo, lo comento
string trim(string s){//retornará un string y recibe un string
string::iterator i = s.begin();//crea un "apuntador" a el inicio de la cadena
string::iterator f = s.end();//crea un "apuntador" al final de la cadena
while(*i==' ')//si lo que está en la posición apuntada es un espacio
i++;//avanza
while(*f==' ')//ergo
f--;
return string(i,f);//retorna el string que está entre las posiciones
//de los apuntadores i y f
}
lo que te decía era mudar tu codigo completo a string porque es más facil manejarlo...
resumo un pedacito de tu programa para que veas como sería haciendolo en c++ con funciones de alto nivel
#include <string>
#include <iostream>
using namespace std;
string trim(string cadena);
int main()
{
string cCadena;
size_t TaCad,cont=0; //equivalente a unsigned long int
system ("cls");
cout << "\n\t SIMULACION COMPILADOR PASCAL \n\n";
cout << "\n1: ";
getline(cin, cCadena);
cCadena = trim(cCadena);
TaCad = cCadena.size();
if(cCadena.find("PROGRAM")!=0 && cCadena.find("program")!=0){
cont = 1;}
if (cont!=0 && TaCad>0)
{
cout << "\n Error [Linea 1]:- 'PROGRAM' esta mal escrito \n ";
}
if (cCadena[7]!=' ' && cont!=0 && TaCad>8)
{
cout << "\n Error [Linea 1]:- Falta espacio entre 'PROGRAM' y nombre de programa\n";
}
la cosa es que necesitas saber lo basico de
string y de
iostream