Fonction chaine de caractere C

Résolu
jerémiethe7 Messages postés 152 Date d'inscription   Statut Membre Dernière intervention   -  
jerémiethe7 Messages postés 152 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   437
 
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   Statut Membre Dernière intervention   32
 
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   Statut Membre Dernière intervention   437
 
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   Statut Membre Dernière intervention   32
 
ç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   Statut Membre Dernière intervention   437
 
a quel niveau il te met ça ?
0
jerémiethe7 Messages postés 152 Date d'inscription   Statut Membre Dernière intervention   32
 
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   Statut Membre Dernière intervention   437
 
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   Statut Membre Dernière intervention   32
 
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   Statut Membre Dernière intervention   437
 
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   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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   Statut Membre Dernière intervention   32
 
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   Statut Membre Dernière intervention   32
 
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