Diccionario de inglés en lenguaje C
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;
}