Colección de citas famosas - Colección de poesías - Recuento de soluciones del diccionario

Recuento de soluciones del diccionario

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 los comentarios 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 match = 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 (SZ text, sizeof (SZ text) -1, FP) // Lea la línea completa aquí, lo cual es más eficiente. y no es fácil.

{

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

char * endChr

mientras(tmp lt; fin)

{

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

endChr = tmp

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

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

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

bool bFound = false

for(I =. 0; iltg_nMatchi) //Encuentra el carácter encontrado

{

if (strcmp(g_word found[I]. szword, SZ word == 0) //Si coincide,

{

g _ palabra encontrada【I】. ncount; //Agregar 1

bEncontrado = true

Romper;

}

}

Si ( ! b fund amp ampstrlen (palabra SZ) gt; 0) // Si no hay coincidencia, almacena el carácter en g_WordFound.

{

strcpy(g_word encontrada【g_n coincidencia】.

szWord, palabra SZ);

g _ palabra encontrada【g _ n coincidencia】. 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_palabra encontrada[I].szWord,g_palabra encontrada[I].nCount);

}

Devuelve 0;

}