Salut, CodeBlock ne reconnait pas la fonction strcpy ( il ne l'affiche pas en bleu comme une fonction normale ). Pourtant je pense bien avoir inclus toutes les bibliothèques nécessaires. Ou alors peut être ai-je mal compris son fonctionnement.
Voici un screen pour plus de précision :

la fonction strcpy prend deux char* en parametre et tu lui donne char*, string du coup je pense pas que sa puisse marcher
edit : tu fais quelque chose de dangereux en plus. Si la chaine que tu copie dans ton char[20] est plus grande que 20 char tu vas avoir des problème de dépassement mémoire (ce qui est assez fourbe a trouver dans un plus gros programme)
Le 08 février 2019 à 11:12:33 MrAnge a écrit :
la fonction strcpy prend deux char* en parametre et tu lui donne char*, string du coup je pense pas que sa puisse marcheredit : tu fais quelque chose de dangereux en plus. Si la chaine que tu copie dans ton char[20] est plus grande que 20 char tu vas avoir des problème de dépassement mémoire (ce qui est assez fourbe a trouver dans un plus gros programme)
Dans mon syllabus, le prof ne parle pas de char*, il utilise cette fonction avec les chaines de caractères directement. Je ne comprend pas. Ce serait à cause de ça que CodeBlock ne reconnaisse pas la fonction?
Je montre le slide au cas où :
Et pour la taille ne t'inquiète pas je dois programmer un jeu du pendu ca dépassera jamais plus de qlq dizaine de caractère. J'essaye déjà de comprendre ce qui cloche avec cette fonction.
Bonjour,
En jettant un oeil ici
http://manpagesfr.free.fr/man/man3/strcpy.3.html
J ai vu que la fonction strcpy nécessite l inclusion de la bibliothèque <string.h> du langage C, dans ton code tu utilise la bibliothèque <string> qui n est pas la même bibliothèque (c est certainement une bibliothèque du langage C++)
Le 08 février 2019 à 11:39:48 Matteo_537 a écrit :
Dans mon syllabus, le prof ne parle pas de char*, il utilise cette fonction avec les chaines de caractères directement. Je ne comprend pas. Ce serait à cause de ça que CodeBlock ne reconnaisse pas la fonction?
Je montre le slide au cas où :
![]()
Et pour la taille ne t'inquiète pas je dois programmer un jeu du pendu ca dépassera jamais plus de qlq dizaine de caractère. J'essaye déjà de comprendre ce qui cloche avec cette fonction.
Regarde bien ce qu'as fait ton prof
il a utilisée deux char[50] (si on fait simple et rapide un char[x] = char*)
par contre char[c] est différent de string ce sont deux type distinct (en tous cas pour le langage C)
Le prototype de la fonction strcpy est le suivant :strcpy(char*, char*)
et toi tu l'appel de la façon suivante :strcpy(char*, string)
je dit pas que j'en suis sûr à 100% mais pour moi sa ne peut pas marcher ![]()
essaye de déclarer ta variable mot2 comme ceci : char mot2[50]
Boboboris1719 a également fait une bonne remarque il faut que tu inclus string.h et pas string
Pour convertir string vers char* il faut utiliser la méthode c_str. strcpy(a, mot2.c_str());
Le 08 février 2019 à 16:07:12 Boboboris1719 a écrit :
Bonjour,En jettant un oeil ici
http://manpagesfr.free.fr/man/man3/strcpy.3.html
J ai vu que la fonction strcpy nécessite l inclusion de la bibliothèque <string.h> du langage C, dans ton code tu utilise la bibliothèque <string> qui n est pas la même bibliothèque (c est certainement une bibliothèque du langage C++)
Salut merci de la réponse, je me suis penché sur cette question avant de poster ici et CodeBlock ne se compile pas lorsque j'ajoute ce h donc à mon avis c'est pas ça mais je vais réessayer quand même et creuser un peu plus.
Le 08 février 2019 à 16:42:56 MrAnge a écrit :
Le 08 février 2019 à 11:39:48 Matteo_537 a écrit :
Dans mon syllabus, le prof ne parle pas de char*, il utilise cette fonction avec les chaines de caractères directement. Je ne comprend pas. Ce serait à cause de ça que CodeBlock ne reconnaisse pas la fonction?
Je montre le slide au cas où :
![]()
Et pour la taille ne t'inquiète pas je dois programmer un jeu du pendu ca dépassera jamais plus de qlq dizaine de caractère. J'essaye déjà de comprendre ce qui cloche avec cette fonction.
Regarde bien ce qu'as fait ton prof
il a utilisée deux char[50] (si on fait simple et rapide un char[x] = char*)
par contre char[c] est différent de string ce sont deux type distinct (en tous cas pour le langage C)
Le prototype de la fonction strcpy est le suivant :
strcpy(char*, char*)et toi tu l'appel de la façon suivante :
strcpy(char*, string)je dit pas que j'en suis sûr à 100% mais pour moi sa ne peut pas marcher
essaye de déclarer ta variable mot2 comme ceci :char mot2[50]Boboboris1719 a également fait une bonne remarque il faut que tu inclus string.h et pas string
Oui ça doit être ça ! dans les slides le prof mélange 2 tableaux et moi j'essayait de fusionner un tableau et un string comme un teubé
merci du coup de pouce j'essaye ça demain.
Le 08 février 2019 à 16:50:03 Loughor a écrit :
Pour convertir string vers char* il faut utiliser la méthode c_str.strcpy(a, mot2.c_str());
Merci aussi ! info utile, j'essayerai ça demain ![]()
Putain mais le nombre de conneries sur ce topic ![]()
Les jean-C arrêtez d'ouvrir votre gueule quand il s'agit de C++ hein, va falloir comprendre que c'est pas le même langage ![]()
"eugneugneu faut mettre <string.h> pas <string>" ![]()
Le 09 février 2019 à 19:02:34 Nathyll a écrit :
Putain mais le nombre de conneries sur ce topic
Les jean-C arrêtez d'ouvrir votre gueule quand il s'agit de C++ hein, va falloir comprendre que c'est pas le même langage
"eugneugneu faut mettre <string.h> pas <string>"
Merci de ton commentaire. Mais en l'occurence, ils n'ont pas tord. string n'inclut pas string.h. Donc ils ont pas tord qu'il va falloir inclure string.h
Apres, en effet, le cours qu'OP suit est clairement du C++ (inclusion de iostream dans le slide). Mais la fonction qu'il regarde est bien strcpy (inclut depuis string.h dans le slide).
NdM:
Apres, se moquer des gens c'est facil; mais les aider ca serait plus constructif, non?
Le 08 février 2019 à 22:36:44 Matteo_537 a écrit :
Le 08 février 2019 à 16:07:12 Boboboris1719 a écrit :
Bonjour,En jettant un oeil ici
http://manpagesfr.free.fr/man/man3/strcpy.3.html
J ai vu que la fonction strcpy nécessite l inclusion de la bibliothèque <string.h> du langage C, dans ton code tu utilise la bibliothèque <string> qui n est pas la même bibliothèque (c est certainement une bibliothèque du langage C++)
Salut merci de la réponse, je me suis penché sur cette question avant de poster ici et CodeBlock ne se compile pas lorsque j'ajoute ce h donc à mon avis c'est pas ça mais je vais réessayer quand même et creuser un peu plus.
En l'occurence dans ton code, tu veux utiliser strcpy qui est definit dans le header string.h et des std::string qui est definit dans le header string. Donc il te faut inclure les deux.
Le 08 février 2019 à 16:42:56 MrAnge a écrit :
Le 08 février 2019 à 11:39:48 Matteo_537 a écrit :
Dans mon syllabus, le prof ne parle pas de char*, il utilise cette fonction avec les chaines de caractères directement. Je ne comprend pas. Ce serait à cause de ça que CodeBlock ne reconnaisse pas la fonction?
Je montre le slide au cas où :
http://www.noelshack.com/2019-06-5-1549622326-2019-02-08-1.pngEt pour la taille ne t'inquiète pas je dois programmer un jeu du pendu ca dépassera jamais plus de qlq dizaine de caractère. J'essaye déjà de comprendre ce qui cloche avec cette fonction.
Regarde bien ce qu'as fait ton prof
il a utilisée deux char[50] (si on fait simple et rapide un char[x] = char*)
par contre char[c] est différent de string ce sont deux type distinct (en tous cas pour le langage C)
Le prototype de la fonction strcpy est le suivant :
strcpy(char*, char*)et toi tu l'appel de la façon suivante :
strcpy(char*, string)je dit pas que j'en suis sûr à 100% mais pour moi sa ne peut pas marcher
essaye de déclarer ta variable mot2 comme ceci :char mot2[50]Boboboris1719 a également fait une bonne remarque il faut que tu inclus string.h et pas string
Oui ça doit être ça ! dans les slides le prof mélange 2 tableaux et moi j'essayait de fusionner un tableau et un string comme un teubé
merci du coup de pouce j'essaye ça demain.
Nan, c'est pas toi, c'est un des trucs bizarre du C++. Il y a deux facon que le langage expose pour faire des string. Ca porte beaucoup de gens a la confusion.
Continue a poster ici si tu as plus de question. Note que ton cours a probablement un forum de discussion aussi.
Le 09 février 2019 à 19:02:34 Nathyll a écrit :
Putain mais le nombre de conneries sur ce topic
Les jean-C arrêtez d'ouvrir votre gueule quand il s'agit de C++ hein, va falloir comprendre que c'est pas le même langage
"eugneugneu faut mettre <string.h> pas <string>"
et toi t'es furieusement stupide et agressif, je ne comprends pas pq tu n'as aucune sanction
Le 09 février 2019 à 21:40:32 Boboboris1719 a écrit :
Le 09 février 2019 à 19:02:34 Nathyll a écrit :
Putain mais le nombre de conneries sur ce topic
Les jean-C arrêtez d'ouvrir votre gueule quand il s'agit de C++ hein, va falloir comprendre que c'est pas le même langage
"eugneugneu faut mettre <string.h> pas <string>"Quand je vois ton commentaire je me dis que je suis bien content de ne pas travailler avec des personnes aussi bêtes et inutiles que toi
N'écoute pas ce mongole
il fallait en effet ajouter un .h
C'est bizarre car j'avais déjà essayé avant mais l'important c'est que ça marche maintenant ![]()
Et pareil pour les autres, j'ai fait ce que vous m'aviez dit et ça marche merci.