Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jacquel

Ponteiros

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.