Fonction chaine de caractere C
Résolu
jerémiethe7
Messages postés
153
Statut
Membre
-
jerémiethe7 Messages postés 153 Statut Membre -
jerémiethe7 Messages postés 153 Statut Membre -
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
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:
- Fonction chaine de caractere C
- Fonction si et - Guide
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Caractere vide - Guide
11 réponses
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
mais je dirais deja qu'il manque la taille du tableau et ton appel n'est pas correct non plus
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
en effet le return c'est comme ça
et pour ton appel essaie ça
et je pense que si nom est une chaine de caractere ton en-tete devrait plutot ressemblé a ç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[])
ç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'".
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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);
ah il n'y a plus qu'une erreur:
sur l'apel de la fonction:
"incompatibles types in asignment to 'char' to char[100]"
sur l'apel de la fonction:
"incompatibles types in asignment to 'char' to char[100]"
poour l'appel c'est simplement ça vu que tu change nom a l'interieur de ta fonction
recherchenom(nom);