CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C++ / CodeBlock] problème fonction strcpy

Pseudo supprimé
Pseudo supprimé 08 février 2019 à 11:09:04

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 :

https://image.noelshack.com/fichiers/2019/06/5/1549620395-2019-02-08.png

MrAnge
MrAnge
Niveau 10
08 février 2019 à 11:12:33

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)

Message édité le 08 février 2019 à 11:14:02 par MrAnge
Pseudo supprimé
Pseudo supprimé 08 février 2019 à 11:39:48

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 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)

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ù :
https://image.noelshack.com/fichiers/2019/06/5/1549622326-2019-02-08-1.png

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.

boboboris1719
boboboris1719
Niveau 2
08 février 2019 à 16:07:12

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++)

MrAnge
MrAnge
Niveau 10
08 février 2019 à 16:42:56

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ù :
https://image.noelshack.com/fichiers/2019/06/5/1549622326-2019-02-08-1.png

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 :ok: 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 :hap:
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

Loughor
Loughor
Niveau 11
08 février 2019 à 16:50:03

Pour convertir string vers char* il faut utiliser la méthode c_str. strcpy(a, mot2.c_str());

Pseudo supprimé
Pseudo supprimé 08 février 2019 à 22:36:44

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ù :
https://image.noelshack.com/fichiers/2019/06/5/1549622326-2019-02-08-1.png

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 :ok: 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 :hap:
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 :ok:

Pseudo supprimé
Pseudo supprimé 09 février 2019 à 19:02:34

Putain mais le nombre de conneries sur ce topic :rire:
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 :rire:
"eugneugneu faut mettre <string.h> pas <string>" :rire:

Message édité le 09 février 2019 à 19:03:02 par Pseudo supprimé
godrik
godrik
Niveau 30
09 février 2019 à 19:09:48

Le 09 février 2019 à 19:02:34 Nathyll a écrit :
Putain mais le nombre de conneries sur ce topic :rire:
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 :rire:
"eugneugneu faut mettre <string.h> pas <string>" :rire:

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?

godrik
godrik
Niveau 30
09 février 2019 à 19:12:38

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.png

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 :ok: 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 :hap:
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.

SPVCE
SPVCE
Niveau 10
09 février 2019 à 20:58:42

Le 09 février 2019 à 19:02:34 Nathyll a écrit :
Putain mais le nombre de conneries sur ce topic :rire:
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 :rire:
"eugneugneu faut mettre <string.h> pas <string>" :rire:

et toi t'es furieusement stupide et agressif, je ne comprends pas pq tu n'as aucune sanction

Pseudo supprimé
Pseudo supprimé 09 février 2019 à 22:53:58

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 :rire:
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 :rire:
"eugneugneu faut mettre <string.h> pas <string>" :rire:

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 :rire2: il fallait en effet ajouter un .h :ok: C'est bizarre car j'avais déjà essayé avant mais l'important c'est que ça marche maintenant :ok:

Et pareil pour les autres, j'ai fait ce que vous m'aviez dit et ça marche merci.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment