Fonction chaine de caractere C

Résolu/Fermé
jerémiethe7 Messages postés 152 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 27 février 2009 - 16 déc. 2007 à 20:31
jerémiethe7 Messages postés 152 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 27 février 2009 - 16 déc. 2007 à 21:27
BONJOUR,
Je ne comprend pas bien pourquoi ma fonction avec une chaine ne fonctionne pas. Je vous montre ce que j'ai écrit dernièrement :

// la déclaration de l afonction :

char recherchenom(char);

// la fonction :

char recherchenom(char nom[])
{
int i,j;
int nombre=0;
for (i = j = 0; nom[i] != '\0'; ++i)
{
if (nom[i] =='<' || nom[i] =='>')
nombre++;
if ((nom[i] >= 65 && nom[i] <= 90 || nom[i]==' ')&&(nombre%2==1))
nom[j++] = nom[i];
}
nom[j] = '\0';
return nom[];
}


// eet puis plus loin dans le programme :

nom[]=recherchenom[](nom[]);

je ne sais pas vraiment si vous avez bien compris mais pour résumer, je pars d'une chaine que j'envoie dans la fonction (qui fait quelques transformations a la chaine) et je renvoie ça dans le programme. Le compilateur me et plusieurs erreurs.
Si quelqu'un pouvais m'aider s'il vous plait.
Merci
A voir également:

11 réponses

mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
16 déc. 2007 à 20:35
c'est quoi les erreur que te donne le compilateur ?
mais je dirais deja qu'il manque la taille du tableau et ton appel n'est pas correct non plus
0
jerémiethe7 Messages postés 152 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 27 février 2009 32
16 déc. 2007 à 20:44
le comiplateur m emet une erreur dans la ligne ou il y a mon return puis 3 erreurs sur la ligne de mon appel de fonction
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
16 déc. 2007 à 20:49
en effet le return c'est comme ça
return nom;

et pour ton appel essaie ça
nom = recherchenom(nom);

et je pense que si nom est une chaine de caractere ton en-tete devrait plutot ressemblé a ça
char *recherchenom(char nom[])
0
jerémiethe7 Messages postés 152 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 27 février 2009 32
16 déc. 2007 à 20:54
ça ne marche pas quand meme car j'ai initialisé la taille de nom par charnom[100] et du coup il me met "incompatibles types in asignment to 'char' to char[100]" et "invalid conversion from 'char*' to 'char'".
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
16 déc. 2007 à 20:56
a quel niveau il te met ça ?
0
jerémiethe7 Messages postés 152 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 27 février 2009 32
16 déc. 2007 à 20:59
dans l'ordre des citations : la 1ère a la ligne de mon return et l'autre sur mon appel
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
16 déc. 2007 à 21:05
c'est bizarre tu as bien changé ton en-tete ?
char *recherchenom(char nom[])
et sinon pour copier la nouvelle chaine a la place de l'ancienne tu peux utiliser la fonction strcpy() comme ça
strcpy(recherchenom(nom), nom);
0
jerémiethe7 Messages postés 152 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 27 février 2009 32
16 déc. 2007 à 21:14
ah il n'y a plus qu'une erreur:
sur l'apel de la fonction:
"incompatibles types in asignment to 'char' to char[100]"
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
16 déc. 2007 à 21:17
poour l'appel c'est simplement ça vu que tu change nom a l'interieur de ta fonction
recherchenom(nom);
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
16 déc. 2007 à 21:23
Salut,

dans ton premier message je vois char[100] caractere;

ce n'est pas correct, tu devras écrire
char caractere[100];
0
jerémiethe7 Messages postés 152 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 27 février 2009 32
16 déc. 2007 à 21:27
oui mais c'est parce que j'avais un peu bidouillé mon prg mais je l'ai vu illico presto a la compilation suivante.
merci à toi.
++
0
jerémiethe7 Messages postés 152 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 27 février 2009 32
16 déc. 2007 à 21:24
ah oui en effet cela fonctionne. Je n'avait jamais vu un appel de la sorte.
En tout cas merci pour tout mype.
je met ça sur résolu.
++
0