Erro discards qualifiers from pointer target type

0 respostas
R

Olá Pessoal,

Estou estudando C e estou encontrando o seguinte erro ao compilar meu código:

exercicio2.c: In function maiuscula': exercicio2.c:94: warning: passing arg 1 oftamanho_string’ discards qualifiers from pointer target type
exercicio2.c: In function reverso': exercicio2.c:129: warning: passing arg 1 oftamanho_string’ discards qualifiers from pointer target type

O código é o seguinte:

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

char caixaalta(char);

char caixabaixa(char);

char *reverso (const char *string);

int tamanho_string (char *string);

int maiuscula (const char *origem, char *destino);

int palindromo (char *string);
int main(void)

{

char string[50];

char *string_reversa, *destino;

int opcao,i,tam_string, num_maiusculo;

do {
printf ("\nDigite a string: ");
gets (string);

printf ("\nCalcule e mostre:\n");
printf ("\n\t1. o tamanho da string.");
printf ("\n\t2. o reverso da string.");
printf ("\n\t3. se a string eh um palindromo.");
printf ("\n\t4. a string lida com todas as letras convertidas para maiusculo");
printf ("\n\t   e a quantidade de caracteres modificados.");

printf ("\n\nOpcao: ");
scanf("%d",&opcao);

tam_string=tamanho_string(string);
for(i=0;i<tam_string;i++)
{
destino[i]=caixaalta(string[i]);
}
num_maiusculo=maiuscula(string, destino);

switch(opcao)
   {
case 1:
     printf("\nO tamanho da string eh igual a %d\n", tamanho_string(string));
     break;

case 2:
     string_reversa=reverso(string);
     printf("\nA String reversa eh: %s\n", string_reversa);
     free(string_reversa);
     break;

case 3:
     if (palindromo(string)==1)
	 printf("\nA string %s eh um palindromo\n",string);
     if (palindromo(string)==0)
	 printf("\nA string %s nao eh um palindromo\n",string);
     free(string_reversa);
     break;

case 4:
     printf("\nA string em maiusculo eh %s \nE o numero de caracteres modificados eh %d\n", destino, num_maiusculo);
     break;
   }
printf("\nTecle ESC para sair ou qualquer tecla para continuar");
gets(string);
}while(getch()!=27);

return 0;

}
int palindromo (char *string)

{

int i, tam_string, chave;

char *string_reversa;

string_reversa=reverso(string);

tam_string=tamanho_string(string);

for(i=0;i<tam_string;i++)

{

string[i]=caixabaixa(string[i]);

string_reversa[i]=caixabaixa(string_reversa[i]);

if(string[i]!=string_reversa[i])

chave=0;

else chave=1;

}

if(chave==1) return 1;

else return 0;

}
int maiuscula (const char *origem, char *destino)

{

int i, tam_string, conta=0;

tam_string=tamanho_string(origem);

for (i=0; i<tam_string; i++)

{

if (origem[i]>=a && origem[i] <=z) conta=conta+1;

}

return conta;

}
char caixaalta(char letra)

{

if (letra>=a && letra <=z) return(letra+A-a);

return (letra);

}
char caixabaixa(char letra)

{

if (letra>=A && letra <=Z) return(letra+a-A);

return (letra);

}
int tamanho_string (char *string)

{

int conta;

for (conta = 0; string[conta]; conta++);

return conta;

}
char *reverso (const char *string)

{

int i, tam_string;

char *string_rev;

tam_string=tamanho_string(string);

string_rev=(char *) malloc((tam_string+1)*sizeof(char));

for (i=0;i<tam_string;i++)

{

string_rev[i]=string[tam_string - i - 1];

}

string_rev[i] = ‘\0;

return string_rev;

}

Alguém poderia me ajudar?

Criado 26 de agosto de 2006
Respostas 0
Participantes 1