Recherche de caracteres dans une chaine de caracteres

rere62960 Messages postés 7 Date d'inscription dimanche 23 septembre 2007 Statut Membre Dernière intervention 7 octobre 2010 - 7 oct. 2010 à 00:19
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 - 7 oct. 2010 à 00:56
Bonjour,

Je veux écrire une fonction qui retourne un pointeur sur la 1ere occurrence du caractère recherché. (NULL si non trouvé)

J'ai écris ceci :

char * indexOfChar(const char * str, char c)
{
int i=0;
while(*str!='\0')
{
if(str[i]==c)
return str;
}
return NULL;
}

int main()
{
char mot1[]="avion";
char rep;
rep = indexOfChar(mot1, car);
printf("indexOfChar : %c \n",rep);
}

Mais le compilateur me renvoie : warning: return discards qualifiers from pointer target type.

warning: assignment makes integer from pointer without a cast|


Merci de m'aider.

1 réponse

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
7 oct. 2010 à 00:56
Salut,

Je veux écrire une fonction qui retourne un pointeur sur la 1ere occurrence du caractère recherché. (NULL si non trouvé)

strchr()

Mais le compilateur me renvoie : warning: return discards qualifiers from pointer target type.

Normal, tu dit retourner un char * mais à la place tu essaye de retourner un const char *, c'est impossible. Rendre constante une chaîne non constante ok, mais pas l'inverse (sinon le const n'a plus aucun intérêt)... du moins pas sans caster.

warning: assignment makes integer from pointer without a cast

Ta fonction retourne un pointeur sur caractère alors que rep n'est qu'un caractère... ce n'est pas du tout la même chose.
0
Rejoignez-nous