#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define QTD 5 // Número de strings a ler
#define MAX 10 // Tamanho máximo de cada string, incluindo o caracter terminal
char *colors[] = {
"green",
"red",
"blue",
"yellow",
"brown",
"white",
"black"
};
const int DIM = sizeof(colors) / sizeof(colors[0]); // Dimensão do vetor de cores
/* Verifica se a string pertence ao vetor de cores */
int check(char *s) {
// Elimina o '\n' que o fgets costuma apanhar na leitura
for (int i = 0; i < DIM; i++)
if (strcmp(s
, colors
[i
]) == 0) return 1;
return 0;
}
int main(void) {
char line[MAX]; // Temporário
char valid[QTD][MAX]; // Vetor com strings finais válidas
int count = 0; // Contador de strings válidas lidas
/* Obtém a string, verifica se é válida, e copia para o vetor de resultado caso seja */
for (int i = 0; i < QTD; i++) {
if (check(line)) {
count++;
}
}
/* Faz output do vetor final */
printf("Foram identificadas %d strings válidas:\n", count
); for (int i = 0; i < count; i++)
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKI2RlZmluZSBRVEQgIDUgICAgLy8gTsO6bWVybyBkZSBzdHJpbmdzIGEgbGVyCiNkZWZpbmUgTUFYIDEwICAgIC8vIFRhbWFuaG8gbcOheGltbyBkZSBjYWRhIHN0cmluZywgaW5jbHVpbmRvIG8gY2FyYWN0ZXIgdGVybWluYWwKCmNoYXIgKmNvbG9yc1tdID0gewogICAgImdyZWVuIiwKICAgICJyZWQiLAogICAgImJsdWUiLAogICAgInllbGxvdyIsCiAgICAiYnJvd24iLAogICAgIndoaXRlIiwKICAgICJibGFjayIKfTsKCmNvbnN0IGludCBESU0gPSBzaXplb2YoY29sb3JzKSAvIHNpemVvZihjb2xvcnNbMF0pOyAgIC8vIERpbWVuc8OjbyBkbyB2ZXRvciBkZSBjb3JlcwoKLyogVmVyaWZpY2Egc2UgYSBzdHJpbmcgcGVydGVuY2UgYW8gdmV0b3IgZGUgY29yZXMgKi8KaW50IGNoZWNrKGNoYXIgKnMpIHsKCS8vIEVsaW1pbmEgbyAnXG4nIHF1ZSBvIGZnZXRzIGNvc3R1bWEgYXBhbmhhciBuYSBsZWl0dXJhCglpZiAoc1tzdHJsZW4ocykgLSAxXSA9PSAnXG4nKSBzW3N0cmxlbihzKSAtIDFdID0gJ1wwJzsKCQoJZm9yIChpbnQgaSA9IDA7IGkgPCBESU07IGkrKykKCQlpZiAoc3RyY21wKHMsIGNvbG9yc1tpXSkgPT0gMCkKCQkJcmV0dXJuIDE7CglyZXR1cm4gMDsKfQoKaW50IG1haW4odm9pZCkgewoJY2hhciBsaW5lW01BWF07ICAgICAgICAvLyBUZW1wb3LDoXJpbwoJY2hhciB2YWxpZFtRVERdW01BWF07ICAvLyBWZXRvciBjb20gc3RyaW5ncyBmaW5haXMgdsOhbGlkYXMKCWludCBjb3VudCA9IDA7ICAgICAgICAgLy8gQ29udGFkb3IgZGUgc3RyaW5ncyB2w6FsaWRhcyBsaWRhcwoJCgkvKiBPYnTDqW0gYSBzdHJpbmcsIHZlcmlmaWNhIHNlIMOpIHbDoWxpZGEsIGUgY29waWEgcGFyYSBvIHZldG9yIGRlIHJlc3VsdGFkbyBjYXNvIHNlamEgKi8KCWZvciAoaW50IGkgPSAwOyBpIDwgUVREOyBpKyspIHsKCQlmZ2V0cyhsaW5lLCBNQVgsIHN0ZGluKTsKCQlpZiAoY2hlY2sobGluZSkpIHsKCQkJc3RyY3B5KHZhbGlkW2NvdW50XSwgbGluZSk7CgkJCWNvdW50Kys7CgkJfQoJfQoJCgkvKiBGYXogb3V0cHV0IGRvIHZldG9yIGZpbmFsICovCglwcmludGYoIkZvcmFtIGlkZW50aWZpY2FkYXMgJWQgc3RyaW5ncyB2w6FsaWRhczpcbiIsIGNvdW50KTsKCWZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykKCQlwcmludGYoIiVzXG4iLCB2YWxpZFtpXSk7CgkKCXJldHVybiAwOwp9Cg==