1
resposta

Strlen de integer

Olá! Segue o código que usei:

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

int soma(int array[5],int tamanho){
    int resultado = 0;
    for (int i = 0; i < tamanho; ++i){
        resultado = resultado + array[i];
    }
    return resultado;
}

int main(int argc, char const *argv[]){

    int array[5] = {10,10,10,10};

    int tamanho = sizeof(array)/sizeof(array[0]); AQUI

    int resultado = soma(array,tamanho);
    printf("%d\n",resultado);
}

Repare no "AQUI", tive que usar esse sizeof(... Para poder descobrir quantos itens haviam no Array, e assim lá no For da função soma, rodar na quantidade certas o for. Mas quando usamos strings (ARRAY DE CHAR'S) temos o strlen(), que já mede quantos caracteres há no array de char, e para no último que tiver preenchido e ignora o resto, tanto que usamos isso no jogo da forca.

Mas quero saber se há algo parecido para um array de int, para não ter que usar: int tamanho = sizeof(array)/sizeof(array[0]); - E depois passar a variavel tamanho para a função, e depois colocar a variável no for...

Há algum método/função para isso?

1 resposta

Que eu saiba, a forma é essa que você usou mesmo. Você pega o tamanho do array em bytes, depois divide pelo tamanho que um inteiro ocupa em bytes, exatamente como você fez no AQUI.