Fonctions paramètre char *
Résolu
Mr_Hooligan
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
Pacorabanix Messages postés 3248 Date d'inscription Statut Membre Dernière intervention -
Pacorabanix Messages postés 3248 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Sa fait un petit moment maintenant que j'essaie de trouver une solution à mon problème.
Le but du programme avec 2 fonctions.
Dans la fonction main, l'utilisateur entre un prénom.
Utilisation de la fonction secondaire pour ajouter le message "Bonjour " devant le prénom et renvoyer la chaine dans main pour l'affichage.
voilà ma réflexion :
Le problème viendrai apparemment du strcpy... j'ai tenté plusieurs solutions mais rien n'y fait.
Merci à tous ceux qui me répondrons.
Sa fait un petit moment maintenant que j'essaie de trouver une solution à mon problème.
Le but du programme avec 2 fonctions.
Dans la fonction main, l'utilisateur entre un prénom.
Utilisation de la fonction secondaire pour ajouter le message "Bonjour " devant le prénom et renvoyer la chaine dans main pour l'affichage.
voilà ma réflexion :
#include <conio.h> #include <stdio.h> #include <iostream.h> #include <string.h> char Chaine(char *ch1 ) { char *ch2, *ch3; strcpy (ch2,"Bonjour "); strcpy (ch3,ch2); strcat (ch3,ch1); return (*ch3); } void main(void) { char *chaine1, *chaine2; clrscr(); printf ("Prenom : "); scanf ("%s",chaine1); strcpy (chaine2, Chaine(*chaine1) ); printf ("%s",*chaine2); getch(); }
Le problème viendrai apparemment du strcpy... j'ai tenté plusieurs solutions mais rien n'y fait.
Merci à tous ceux qui me répondrons.
A voir également:
- Écrire une fonction qui affiche le caractère passé en paramètre
- Caractère ascii - Guide
- Fonction si et - Guide
- Caractère spéciaux - Guide
- Ecrire en gras sur whatsapp - Guide
- Caractères spéciaux : comment les saisir facilement - Guide
7 réponses
char *chaine1, *chaine2;
scanf ("%s",chaine1);
Je ne vais pas plus loin dans le code car je sais déjà que le programme va probablement se terminer par un 'segment fault'.
Je te laisse trouver cette grosse bêtise; rassure-toi tu n'es pas la premier à la faire et cette erreur est la bête noire de beaucoup de mauvais programmeur qui prennent le 'C' pour du Basic et qui, par la suite, vont évidemment dénigrer ce langage ;-)
Bonne réflexion.
scanf ("%s",chaine1);
Je ne vais pas plus loin dans le code car je sais déjà que le programme va probablement se terminer par un 'segment fault'.
Je te laisse trouver cette grosse bêtise; rassure-toi tu n'es pas la premier à la faire et cette erreur est la bête noire de beaucoup de mauvais programmeur qui prennent le 'C' pour du Basic et qui, par la suite, vont évidemment dénigrer ce langage ;-)
Bonne réflexion.
Ce code là fonctionne très bien.
Je sais pas si tu parle du " & " qui manquerait, il n'y en a pas besoin.
Je sais pas si tu parle du " & " qui manquerait, il n'y en a pas besoin.
char *chaine; ou char chaine[25]; sa change rien dans le code ( j'ai les deux versions et exactement le même problème )
je crois savoir d'où vient le problème, faut que je test mais c'est pas pour aujourd'hui.
je crois savoir d'où vient le problème, faut que je test mais c'est pas pour aujourd'hui.
Au lieu de mettre des réponses comme sa, un peu d'aide serait le bienvenue.
Je sais bien que c'est pas la même chose, mais que j'emploie l'un ou l'autre dans le code sa ne change rien aux résultat.
Est ce qu'utiliser le malloc changerait quelque chose ?
Si possible d'avoir un coup de main plutôt que des remarques à la c..
Merci d'avance.
Je sais bien que c'est pas la même chose, mais que j'emploie l'un ou l'autre dans le code sa ne change rien aux résultat.
Est ce qu'utiliser le malloc changerait quelque chose ?
char *chaine; chaine = (char *)malloc (25*sizeof(char));
Si possible d'avoir un coup de main plutôt que des remarques à la c..
Merci d'avance.
par contre il n'y a pas besoin de "caster" avec (char *) ton pointeur crée avec malloc. voir https://c.developpez.com/faq/?page=Bonnes-pratiques#DIVERS_malloc
Ok merci Char Snipeur, je vais essayer tout de suite.
un pointeur est comme un panneau qui pointe vers une ville.
Lorsque tu déclares habituellement un tableau int tableau[25] par exemple, c'est vrai que "tableau" est considéré comme un "int *". Le nom du tableau est en effet un pointeur vers le début, un panneau vers le début du tableau en mémoire. Mais le C fabrique bien le tableau. Par contre si tu ne déclares que le pointeur, que le panneau, et bien il n'y a pas de ville vers laquelle il pointe.
Je ne sais pas si mon image était foireuse... ça t'aide à comprendre ?
Lorsque tu déclares habituellement un tableau int tableau[25] par exemple, c'est vrai que "tableau" est considéré comme un "int *". Le nom du tableau est en effet un pointeur vers le début, un panneau vers le début du tableau en mémoire. Mais le C fabrique bien le tableau. Par contre si tu ne déclares que le pointeur, que le panneau, et bien il n'y a pas de ville vers laquelle il pointe.
Je ne sais pas si mon image était foireuse... ça t'aide à comprendre ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
je suis en 1 ere année developpement informatique je trouve quelques difficultés dans cest exercice d'algorithme si vous pouvez m'aider je serai contente
le but de l'exerice est de lire un verbe du 1er groupe dans le tableau verbe et d'afficher sa conjugaison au present de l'indicatif exemple verbe bosser je bosse ;tu bosse.........
on s'assurera que le verbe fourni se termine bien par 'er' on supposera qu'il s'agit d'un verbe régulier autrement dit on admettra que l'utilisateur ne fournira pas un verbe tel que manger (le programme affichera alors nous mangeons)
la questiion !!:ecrire les procédures et fonctions suivantes:
la procédure LECTURE VERBE pour ranger un verbe ds un tableau de taille maximale 20 la saise se termine par un point
la fonction VERIFIER VERBE pour verifier que le verbe saisi au clavier se termine bien par ER
poir conjuguer un verbe on utilise un tableau RESULTAT à deux dimensions
merci bien comme meme
je suis en 1 ere année developpement informatique je trouve quelques difficultés dans cest exercice d'algorithme si vous pouvez m'aider je serai contente
le but de l'exerice est de lire un verbe du 1er groupe dans le tableau verbe et d'afficher sa conjugaison au present de l'indicatif exemple verbe bosser je bosse ;tu bosse.........
on s'assurera que le verbe fourni se termine bien par 'er' on supposera qu'il s'agit d'un verbe régulier autrement dit on admettra que l'utilisateur ne fournira pas un verbe tel que manger (le programme affichera alors nous mangeons)
la questiion !!:ecrire les procédures et fonctions suivantes:
la procédure LECTURE VERBE pour ranger un verbe ds un tableau de taille maximale 20 la saise se termine par un point
la fonction VERIFIER VERBE pour verifier que le verbe saisi au clavier se termine bien par ER
poir conjuguer un verbe on utilise un tableau RESULTAT à deux dimensions
merci bien comme meme
Demander de l'aide pour vos exercices sur CCM
De plus, il vous faut poster un nouveau sujet, pas répondre à un autre qui n'a pas grand chose à voir.
De plus, il vous faut poster un nouveau sujet, pas répondre à un autre qui n'a pas grand chose à voir.
c'est facil comme c'est acil on va leur sortir le fameut SDZ pour qu'il bavard.lol
merci d'éviter ce genre de messages inutiles voire insultants. Charte d'utilisation de CommentCaMarche.net - Respect d'autrui