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 -
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
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
- Caractère ascii - Guide
- Fonction si et - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Chaine tnt gratuite sur mobile - 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);