Red de conocimiento informático - Computadora portátil - ¿Alguien habla el lenguaje c?

¿Alguien habla el lenguaje c?

Utilice fgets para leer cada línea en secuencia. Tenga en cuenta que el carácter de nueva línea "\n" al final de la línea también se leerá.

Primero determine si el contenido leído es ". stop\n" , si es así, salte del bucle y detenga la entrada

Para la cadena en esta línea, use la función while para recorrer cada carácter por turno

Use espacios como el espaciado entre palabras para calcular la longitud de cada palabra, guarde la palabra más larga y el subíndice inicial correspondiente

Finalmente, genere la longitud total de las palabras en cada línea, y la palabra más larga en cada línea será suficiente

El código C es el siguiente:

Los resultados de la ejecución son los siguientes:

El resultado es consistente con el ejemplo, espero adoptarlo~

Adjunto el código fuente:

#include lt; stdio .hgt;

#include string.hgt;

#define N 105

int main() {

char s [N];

int i, j, cnts, inicio, maxlen, len

while (1) {

memset(s, 0, N ); // Inicializa la matriz de caracteres

fgets(s, N, stdin);

if (strcmp(s, "stop\n") == 0)

break; // Escribe stop stop, ten en cuenta que fgets se leerá en '\n'

i = 0; cnts = 0; inicio = 0; maxlen = 0;

mientras (s[i] != '\n') {

len = 0; // Calcula la longitud de cada palabra

while (s[i] ! = '\n' amp; s[i] ! = ' ') {

len

p>

i;

}

cnts = len

if (len gt; maxlen) {

maxlen = len; // Guarda la longitud de la palabra más larga

start = i - len; // i -1 - start 1 = len, guarda el subíndice inicial de la palabra más larga

}

if (s[i] == '\n')

break; // Llega al final de la línea

while (s[i] = = ' ') // Saltar espacios entre palabras

i;

}

p> printf("d ", cnts); p> for (j = start; j lt; start maxlen; j ) // salida La palabra más larga

printf("c", s[j]); "\n");

}

devuelve 0;

}