Questions fonction de type char *
Bonjour,
Je suis débutant en C et j'aimerai comprendre l’utilité d'une fonctions de type char * ou int *. Mon code permet d'obtenir le miroir d'une chaîne de caractères. Lorsque ma fonction miroir est de type char et non de type char *, j'ai le warning suivant : "return makes integer from pointer without a cast". Pourquoi faut-t-il caster cette fonction ? Est-ce que c'est parce que la fonction retourne T, qui est une chaîne de caractères ? Si c’était un tableau d'entier, je devrais utiliser int * ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* miroir(char *T, int i);
int main()
{
char ch[100];
printf("Veuillez entrer votre cdc : \n");
fgets(ch, 100, stdin);
printf("%s", miroir(ch, 0));
return 0;
}
char* miroir(char *T, int i)
{
int l, h;
char temp;
l = strlen(T);
h = l / 2;
if (i < h)
{
temp = T[i];
T[i] = T[l - 2 - i];
T[l - 2 - i] = temp;
return miroir(T, i + 1);
}
else
return T;
} |
Merci en avance