Ir ao conteúdo
  • Cadastre-se

C Como usar funções da biblioteca string em uma função sem usar ponteiros?


Posts recomendados

Bom dia.

Estou resolvendo o seguinte exercício:

Escreva uma função que receba um numero inteiro maior do que zero e retorne a soma de todos os seus algarismos. Por exemplo, ao numero 251 corresponder a o valor 8 (2  + 5 + 1). Se o numero lido não for maior do que zero, o programa terminar  a com a  mensagem “Numero invalido”.

Desenvolvi a solução que segue, porém esta dando erro com funções da biblioteca string.

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

int main (void){
    int converte (char a);
    int tam;
    char texto;
    printf("Digite um numero: ");
    scanf("%s",&texto);
    printf("Soma: %i", converte(texto));

}
int converte (char a){
    int tam;
    int num;
    int num_intermediario;
    char intermediario[2];
    tam=strlen(a);
    char texto1[tam];
    strcpy(texto1,a);
    intermediario[1]='\0';

    for (int x=0;x<tam;x++){
        intermediario[0]=texto1[x];
        num_intermediario=atoi(intermediario);
        num=num+num_intermediario;
    }
    return(num);
}

Pois bem! Pensei comigo mesmo é só não usar essas funções, ai modifiquei o a função, e ficou assim:

int converte (char a){
    int num;
    int num_intermediario;
    char intermediario[2];
    intermediario[1]='\0';

    for (int x=0;a[x]!='\0';x++){
        intermediario[0]=a[x];
        num_intermediario=atoi(intermediario);
        num=num+num_intermediario;
    }
    return(num);
}

E agora está me dando um erro falando que "a" não é array, toda char não é um array ate encontrar o limitador de quantidade ou um '\0' ?

E como conserto a função com as bibliotecas strings para funcionar sem usar ponteiros essa é a lista de exercícios 7 - funções ponteiros é a lista 9.  

Link para o comentário
Compartilhar em outros sites

@bngomes Erro da minha parte então, tirei essa conclusão por dedução já char tem tamanho 1 e as vezes ao criar uma string uso: 

char c ="exemplo";

Esse código funciona recebe maior quantidade do que a prevista, e o que termina a string é um '\0'.

Mais enfim sabe consertar o primeiro script com uso da biblioteca string? 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...