Lenguaje C: ¿Qué significa la bandera en esta pregunta? No entiendo la oración marcada con un círculo, explíquela en detalle, gracias.
La bandera en la oración anterior flag=... significa "el carácter actual es una letra inglesa".
La siguiente oración if (bandera), a juzgar por el programa ejecutado más tarde (strcpy...), es obviamente una declaración para eliminar el carácter actual, por lo que solo puede significar que el carácter actual no está en Inglés Para operaciones que aparecen cuando se usan letras, el significado de la declaración if debe ser if (no caracteres en inglés).
De acuerdo con la definición de valor lógico en lenguaje C, suponiendo que el carácter actual es un carácter inglés y el anterior tiene el valor flag=1, no es necesario eliminarlo en este momento. acción Si no se establece la condición, se requiere flag= 0.
Así que necesitas realizar una operación de negación en la bandera, simplemente marca =!flag (1 cambia a 0, 0 cambia a 1).
La bandera que ingresó es -flag, 0 sigue siendo 0 (falso lógico, si 1 se convierte en -1, sigue siendo lógicamente verdadero, lo que significa que no hay cambios, por lo que es incorrecto).