Colección de citas famosas - Slogan de motivación - Diccionario de inglés en lenguaje C

Diccionario de inglés en lenguaje C

De hecho, es más fácil leer la línea completa con get y luego procesarla. El uso de getc aquí hace que el programa sea complejo y propenso a errores.

Dame un ejemplo para tu referencia, mira las notas e intenta entender:

# include ltstdio.h gt

# include ltstring.h gt

p>

Estructura WORD_FOUND //Estructura utilizada para almacenar resultados.

{

char SZ palabra[256];

int nCount

}

PALABRA _ ENCONTRADA g _ PALABRA ENCONTRADA [100] = { { " ", 0 } }

int g _ n coincidencia = 0

int main()

{

char SZ texto[1024];

char SZ palabra[512];

ARCHIVO * fp

int I;

If ((FP = fopen ("case 1. in "," r ")== null)//Abre el archivo.

{printf("Error"); return 1 ;}// Genera un error si no se puede abrir

While (fgets (sztext, sizeof (sztext)-1, FP))// Lea la línea completa aquí, que es más efectivo y menos propenso a errores

p>

{

char *tmp=szText, * end = SZ text strlen(SZ text);

char * endChr<. /p>

mientras(tmp lt; fin)

{

mientras(* tmp = = ' ' | | * tmp = = ' \ n ' | | * tmp = = ' \ t ')tmp; //Saltar espacios aquí

endChr = tmp

while(* end chr amp; amp*endChr!= ' \ n ' amp amp* endChr!= ' \ r ' amp amp*endChr! = ' ')end chr; //Encuentra el siguiente espacio aquí

memset(szWord, 0, sizeof(SZ word));

strncpy(szWord , tmp, end chr-tmp); //Los caracteres encontrados se almacenan en szWord

bool bFound = false

for(I = 0; i ltg _ nMatchI) // Encuentra el carácter encontrado

{

If (strcmp (g_wordfound[i].szword,SZ word)= = 0)//Si coincide,

{

g_WordFound[i]. ncount; //Agregar 1

bEncontrado = true

Romper;

}

}

if ( ! Encontrado y encontrado. ampstrlen(szWord)>0) //Si no hay coincidencia, almacena el carácter en g_WordFound.

{

strcpy(g_WordFound[g_nMatch]).

szWord, palabra SZ);

g_WordFound[g_nMatch]. ncount;

g_n coincidencia;

}

tmp = endChr

if(tmp gt; = end)break;

}

}

//Imprime los resultados aquí

for(I = 0; I ltg _ nMatchi)

{

printf("s = d\n ",g_WordFound[i].szWord,g_WordFound[i].nCount);

}

Regresar 0;

}