jacquel 0 Denunciar post Postado Abril 21, 2009 http://forum.imasters.com.br/public/style_emoticons/default/closedeyes.gif O programa que eu fiz é muito simples ele pede apenas para retornar o numero de caracteres de uma palavra utilizando para isso o uso da função strlen. O meu problema é que ele não está imprimindo o principal que o numero de caracteres da palavra! :unsure: / *7.Implemente a função que calcula o número de caracteres de uma string recebida como parâmetro. Pede-se aqui a implementação da função strlen(char *s);*/ #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<string.h> int num(char *str){ int tam=strlen(str); return tam; } main(){ char *str; printf("Diga a palavra:\n"); fflush(stdin); gets(str); printf("Numero de caracteres:%d\n", num(str)); getch(); } Compartilhar este post Link para o post Compartilhar em outros sites
José Enésio 4 Denunciar post Postado Abril 21, 2009 Acredito que você não possa utilizar um ponteiro para char não inicializado. Uma mudança rápida no seu código e funcionou: /*7.Implemente a função que calcula o número de caracteres de uma string recebida como parâmetro. Pede-se aqui a implementação da função strlen(char *s);*/ #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<string.h> int num(char *str){ int tam=strlen(str); return tam; } int main(){ char str[50]; printf("Diga a palavra:\n"); gets(str); printf("Numero de caracteres:%d\n", num(str)); getch(); return 0; } Nota: sempre defina main retornando int e retorne algum valor pelo menos no final. Leia o aviso aqui no fórum sobre fflush. Nota: como agora a leitura é em uma array com um número fixo de elementos, você pode precisar adicionar um pouco mais de segurança no seu código, trocando o gets por fgets: fgets(str, 50, stdin); Compartilhar este post Link para o post Compartilhar em outros sites
jacquel 0 Denunciar post Postado Abril 21, 2009 <José enésio> http://forum.imasters.com.br/public/style_emoticons/default/joia.gif obrigada por ter respondido a minha dúvida, realmente eu não tinha inicializado o char para ponteiro! Valeu!!ae Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Abril 21, 2009 Se o exercício pede que você implemente a função strlen, por que você usa a strlen da biblioteca? 1- Não use fflush(stdin) 2 - Não use gets Compartilhar este post Link para o post Compartilhar em outros sites