1
resposta

Strlen não funcionou

#include <stdio.h> #include <string.h>

int main() {

int notas[5];
int chute;

notas[0] = 1;
notas[1] = 4;
notas[2] = 7;
notas[3] = 5;
notas[4] = 10;

for (int i = 0; i < 5; i++)
{
    printf("  As notas sao: %d \n", notas[i]);
}

}

Eu tentei usar o strlen, mas acabou que não funcionou, então eu troquei por 5 e foi

for (int i = 0; i < strlen(notas); i++) { printf("As notas sao: %d ", notas[i]); }

esse foi o que deu errado, apenas troquei o strlen(notas) por 5 e foi
1 resposta

Oi René,

O problema é que strlen é uma função projetada para trabalhar com strings, e não com arrays de inteiros como o seu notas. 🤔

A solução que você encontrou, usar o tamanho do array diretamente no loop (for (int i = 0; i < 5; i++)), é a forma correta de iterar sobre um array de tamanho fixo em C. 👍

Se você estivesse trabalhando com uma string, aí sim strlen seria a função adequada para determinar o tamanho da string. Por exemplo:

#include <stdio.h>
#include <string.h>

int main() {
    char nome[] = "Alura";
    int tamanho = strlen(nome);
    printf("O tamanho da string '%s' é: %d\n", nome, tamanho); // Saída: O tamanho da string 'Alura' é: 5
    return 0;
}

Neste caso, strlen funciona corretamente porque nome é um array de caracteres que termina com '\0'. 🧐

Para saber mais: Documentação da função strlen. Este link explica o funcionamento da função strlen e como ela é usada com strings em C.

Continue praticando e explorando a linguagem!