¿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~ p>
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;
}