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

Engineer
Engineer
Niveau 12
26 juillet 2013 à 15:24:29

Salut,
j'essaye d'implementer un programme qui demandera une phrase caractere par caractere, mettra chaque caractere dans un tableau et puis affichera la phrase que l'utilisateur aura tapé. Cependant j'ai une erreur bizarre qui me dit que je dois mettre un =, ou un ; après la { du main...

Voici le code:

  1. include <stdio.h>
  1. define TAILLE 10

char string[TAILLE];

int main()
{
int j = 0;
for(j = 0; (j < TAILLE) && (string[j] != '\0'); j++)
{
printf("%c", string[j]);
}

return 0;
}

char string[TAILLE]()
{
char c;
int i = 0;
do
{
scanf("%c", &c);
string[i] = c;
i++;
}
while(c != '\0');

return string[];
}

Merci de m'éclaircir :)

(((PS: Je compile à l'aide de MingW en ligne de commande parce que l'installation de mes IDE foirent toujours, le path que je leur met ne fonctionne jamais, etc etc... Donc je fais mon code dans notepad++ puis je l'exécute avec MingW.)))

[MaIcom-X]
[MaIcom-X]
Niveau 10
26 juillet 2013 à 15:36:58

char string[TAILLE]()

char string[TAILLE] est un déclaration d'un tableau. Je pense que toi tu voulais créer une fonction ?

Dans ce cas fait char

String(){

char c;
......
}

Engineer
Engineer
Niveau 12
26 juillet 2013 à 15:58:59

J'ai essayé les deux et ca ne fonctionne pas, de toute facon 'lerreur n'est pas là comme je l'ai précisé mais dans les { du main ils me disent.

Engineer
Engineer
Niveau 12
26 juillet 2013 à 15:59:23

et non je ne dois pas faire ce que tu as dit puisque je dois retourner un tableau...

[MaIcom-X]
[MaIcom-X]
Niveau 10
26 juillet 2013 à 16:00:18

Je viens de corriger ton truc, t'as oublié des choses .

[MaIcom-X]
[MaIcom-X]
Niveau 10
26 juillet 2013 à 16:03:36

:d) http://pastebin.com/5qsNXp1p

A la compilation ça marche, et une chose pour afficher appuies sur entrer

Engineer
Engineer
Niveau 12
26 juillet 2013 à 16:12:41

Ah merci ca fonctionne ca, mais pourquoi on ne précise pas le type de la fonction ? Là je suppose que comme on met rien c'est le type void mais on retourne quand meme quelque chose (le tableau string) ce qui me semble impossible ? Pourquoi le pointeur sur string aussi? Si tu return un tableau de char tu dois préciser que le type de fonction est un tableau de char non ?
Merci de répondre à tout

[MaIcom-X]
[MaIcom-X]
Niveau 10
26 juillet 2013 à 16:22:58

Ah désolé je me suis trompé, toi tu veux retourner et ensuite récupérer le tableau ?

Engineer
Engineer
Niveau 12
26 juillet 2013 à 16:28:26

Oui, pour ensuite afficher chaque élément de celui ci, donc je comprends pas pourquoi ce que tu as fait fonctionne

[MaIcom-X]
[MaIcom-X]
Niveau 10
26 juillet 2013 à 17:31:48

Dans ce cas tu fais ce genre de truc:

:d) http://pastebin.com/jyFaGbn2

T'as plusieurs possibilité

:d) http://c.developpez.com/faq/?page=fonctions#FONCTIONS_retourner_une_chaine

[MaIcom-X]
[MaIcom-X]
Niveau 10
26 juillet 2013 à 17:33:45

@Engineer

Posté le 26 juillet 2013 à 16:28:26

Oui, pour ensuite afficher chaque élément de celui ci, donc je comprends pas pourquoi ce que tu as fait fonctionne
------------

Ça fonctionne car char string était une variable globale.

Engineer
Engineer
Niveau 12
26 juillet 2013 à 17:39:19

Mais le %s n'existe pas en C ?! T'as utilisé du C++ là

Engineer
Engineer
Niveau 12
26 juillet 2013 à 17:40:21

Le but que j'essaye de faire c'est d'abord de faire des fonctions d'I/O basique avec des strings en C et puis PLUS TARD donc pas dans ce programme d'implémenter une structure String que je pourrais utiliser dans mes autres programmes C en gros ne faire que du C

[MaIcom-X]
[MaIcom-X]
Niveau 10
26 juillet 2013 à 17:46:26

Non le %s, existe en c.

:d) http://www.calvat.com/tutorial-langage-c-1.html

Engineer
Engineer
Niveau 12
26 juillet 2013 à 20:01:06

ah d'accord c'est bizarre quand même d'avoir %s pour une chaine de caractere mais de pas avoir de chaine de caractere à proprement parler c'est juste un tableau de char

LEpigeon-888
LEpigeon-888
Niveau 12
26 juillet 2013 à 20:47:45

"c'est juste un tableau de char"

Comme toutes les chaines de caractères dans n'importe quel langages (du moins j'pense, je vois difficilement comment faire autrement de toute façon) :oui:

kernel[]
kernel[]
Niveau 10
26 juillet 2013 à 20:55:21

le mot chaine est caractères est assez équivoque je pense non ?

Engineer
Engineer
Niveau 12
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

Engineer
Engineer
Niveau 12
26 juillet 2013 à 21:21:19

Et Kernel je n'ai rien compris à ton message inutile et mal orthographié ^^

LEpigeon-888
LEpigeon-888
Niveau 12
26 juillet 2013 à 23:24:39

Comment tu crois que les chaines de caractère sont stocké dans un std::string en c++ ? :pf:

Il y a qu'un seul moyen de le faire c'est pareil partout, et en C tu fais char string[] = "test" c'tout, pas besoin de te compliquer la vie avec {'t', 'e', 's', 't'} :hap:

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