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

Programme C string

[MaIcom-X]
[MaIcom-X]
Niveau 10
26 juillet 2013 à 23:24:58

@Engineer

Posté le 26 juillet 2013 à 21:20:57

Non, en java par exemple c'est un type à part entière, quand tu fais une chaine de caractère tu fais juste string ligne = "truc";. Pareil en C++ il me semble. Tandis qu'ici tu devras faire char string[] = { 't', 'r', 'u', 'c' }; alors que tu pourras faire printf("%s", string); ce qui me semble pas très logique :p Je suppose que c'est la philosophie du C à ne rien inclure afin de le garder très léger
---------------

tu peux aussi faire ça

char MACHAINE[ ] = "Hello";
----------------
Source: http://newb6.u-strasbg.fr/~siebert/pages/teaching/INFO-L1/cours6.pdf

LEpigeon-888
LEpigeon-888
Niveau 12
26 juillet 2013 à 23:29:42

Enfin std::string ça doit pas être juste un vulgaire tableau de char déclaré comme ça, plus complexe évidement, mais le principe reste le même quoi, plusieurs char à la suite :oui:

Engineer
Engineer
Niveau 12
26 juillet 2013 à 23:51:27

T'as toujours pas compris pigeon, je sais bien que c'est fait comme ca mais c'est implémenté de base dans le language comme en Java, tu dois juste faire string et tu te casse pas la tete à faire un tableau de char c'est tout, je me doute bien que c'est implémenté comme un tableau de char

Merci Malcom je savais pas, dans mon livre il montrait que l'exemple que j'avais écrit

godrik
godrik
Niveau 30
27 juillet 2013 à 00:06:03

En C, les seuls types du langage sont les types supportes directement par le processeur. Les chaines de caracteres sont un construct logiciel et pas materiel. Donc ils ne sont pas en C.

[MaIcom-X]
[MaIcom-X]
Niveau 10
27 juillet 2013 à 00:34:16

:d) Enginer

Bon ce qui est sur c est que le code que je t ai proposé est juste au niveau de la syntaxe et marche quand je compile avec gcc . Mais bon dans le doute au lieu d'utiliser %s , tu peux utiliser %c et regarder dans chaque case du tableau avec une boucle, comme dans ton premier code car char * string est um tableau.

Bon avec tout ça je pense que tu peux te débrouiller seul.

Engineer
Engineer
Niveau 12
27 juillet 2013 à 21:59:18

Bonjour,
je vais transformer ce topic en topic à questions sur le C
Pourquoi ce code ne compile pas je pige vraiment pas... L'erreur est "tableau de type incomplet" (le tableau Ensemble[SIZE])

http://pastebin.com/q4fX04wK

Merci d'avance :)

Engineer
Engineer
Niveau 12
27 juillet 2013 à 22:10:58

C'est bon je crois que j'ai reglé le probleme : on doit toujours mettre les struct qu'on utilise dans le main, on ne peut pas mettre = NULL à tout comme en JAVA, et on utilise jamais -> sauf dans les fonctions ou l'on passe en argument des pointeurs sur des structures. Sinon pour les adresses des variables du tableau ensemble on utilise &ensemble[a].machin et pour les afficher on utilise ensemble[a].machin.
J'ai bon ? (PS; ca ne compile qu'en C99)

dark_drow
dark_drow
Niveau 15
27 juillet 2013 à 22:24:51
  • Avant d'utiliser des struct il faut les déclarer plus haut dans le code (comme pour les fonctions)
  • le signe -> c'est quand ta variable est un pointeur
  • & désigne l'adresse en effet, donc pour afficher la valeur tu ne met pas le & (sinon ca affichera l'adresse)
  • L'équivalent java du NULL je pense que ça serait plutôt un bzero()
dark_drow
dark_drow
Niveau 15
27 juillet 2013 à 22:26:25

J'ai bon ? (PS; ca ne compile qu'en C99)
=> c'est à cause du code "for(int i = 0 ...)"
à transformer en :
int i;
for(i = 0;...)

Engineer
Engineer
Niveau 12
27 juillet 2013 à 22:48:44

Ok mais pas n'importe quelle variable pour le "->", seulement les structures si j'ai bien compris.
Dommage que c'est uniquement valable en C99 pour le for...
Merci

PocoIo
PocoIo
Niveau 10
27 juillet 2013 à 23:23:35

" Ok mais pas n'importe quelle variable pour le "->", seulement les structures si j'ai bien compris. "

Oui et à noter que c'est l'équivalent du déréférencement d'un pointeur sur une structure. Par exemple avec un pointeur p sur une structure du type point (celle qu'on peut voir dans ton code), si on veut accéder au membre x par déréférencement on peut écrire "(*p).x" qui est équivalent à "p->x", les parenthèses sont nécessaires car sans elles la notation serait équivalente à "*(p.x)", ce qui n'a aucun sens.

Engineer
Engineer
Niveau 12
06 août 2013 à 22:43:43

Une autre question, je cherche à enregistrer les frappes de l'utilisateur, les stocker dans un fichier et les afficher dans le terminal. Je voudrais que le programme tourne en fond pour permettre de par exemple compter le nombre d'occurences d'un mot mais de manière à que ce programme fonctionne de manière non stop. Voici mon programme :

http://pastebin.com/VsYk7qEZ

Il compile mais il crash.

Merci d'avance

Engineer
Engineer
Niveau 12
06 août 2013 à 22:45:00

PS: je voulais pas dire qu'il fonctionne non stop, dès que la touche appuyée sur le clavier est \n alors ca s'arrete*

Engineer
Engineer
Niveau 12
06 août 2013 à 23:13:28

Ah et désolé du triple post mais il faut remplacer dans le !feof du while de la fin, le "sortie" par "read" !

Engineer
Engineer
Niveau 12
07 août 2013 à 16:45:18

Je suis de retour j'ai un peu amélioré mon programme précédent et j'ai aussi fait une pseudo implémentation de base de données qui stocke des clients sur des fichiers et qui permet de les consulter. A mon avis le probleme pour le filewriter viendrait du flux stdin, si quelqu'un peut confirmer...

Voici les codes:

Code de filewriter: PASTEBIN.com/Gid7YJdr

Code de base de données : PASTEBIN.com/9Em59XJ1

Merci d'avance...

Engineer
Engineer
Niveau 12
08 août 2013 à 19:28:14

Probleme reglé

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