begin process at 2012 05 30 04:54:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

tableau de caractère


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

tableau de caractère

vendredi 20 octobre 2006 à 22:56:18 | tableau de caractère

sakjimh

salut à tous
voila j'ai un petit problème: je veux crée un tableau de caractère avec une boucle for et l'afficher caractère par caractère:
#include <conio.h>
#include <stdio.h>
#define L 255
void saisie(char x[L])
{
  int i;
    for(i=0;x[i]!='\0';i++)
    scanf("%c",&x[i]);
    x[i]='\0';
}
void affiche(char x[L])
{
  int i;
  for(i=0;x[i]!='\0';i++)
    printf("%c\n",x[i]);
}
void main()
{
  //clrscr();
  char ch[L];
  saisie(ch);
  affiche(ch);
  getch();
}
ou est la faute?!
merci d'avance

vendredi 20 octobre 2006 à 23:29:41 | Re : tableau de caractère

Ombitious_Developper

Salut :

La faute est claire et évidente :

la condition dans la boucle est mal fausse
 
for(i=0; ch[i] != '\0'; i++)

Dans l'appel tu fais :

char ch [L];
saisie (ch);

Initialement le contenu de ch est aléatoire. Est tu sur que tu vas rencontrer un '\0'

une proposition :

void saisie (char * str, int l) {
    for (int i=0; i<l; ++i) {
       printf ("char : ");scanf ("%c", str+i);
    }
    str [i] = '\0';
}

void afficher (char * str) {
    printf ("%s", str);
}


// main

char txt [L];

saisie (L, 20);
afficher (L);
vendredi 20 octobre 2006 à 23:41:22 | Re : tableau de caractère

Titi035

Réponse acceptée !
ton scanf dans la boucle saisie chope 2 char à la fois et la condition de sortie de ta boucle n'est pas bonne.

essaie ça
void saisie(char x[L])
{
  int i;
    for(i=0;x[i-1]!='\n';i++)
    {
        scanf("%c",&x[i]);
        flushall();
    }

    x[i]='\0';
}

si tu tapes enter, tu sors de la boucle.
.
vendredi 20 octobre 2006 à 23:48:49 | Re : tableau de caractère

Ombitious_Developper

Salut :

ajoutes donc un fflush (stdin)

ou tout simplement

void saisie (char * str)
{
    gets (str);
}

samedi 21 octobre 2006 à 00:47:04 | Re : tableau de caractère

Ombitious_Developper

salut :

void saisie (char * str, int l) {
    for (int i=0; i<l; ++i) {
       printf ("char : ");
       scanf ("%c", str+i);
       fflush (stdin);
    }
    str [i] = '\0';
}
samedi 21 octobre 2006 à 07:08:52 | Re : tableau de caractère

Titi035

C'est une cas d'école quoi...
samedi 21 octobre 2006 à 08:28:45 | Re : tableau de caractère

Ombitious_Developper

Salut :

Mais ça revient au même. Pourquoi compliquer les choses tant qu'il y a des solutions plus simples à moins que tu cherches autre chose à faire que je ne peux pas dissimuler à travers ce petit bout de code?

Que veux tu faire précisement?
samedi 21 octobre 2006 à 14:56:48 | Re : tableau de caractère

Titi035

heu...
ce n'est pas moi qui ait posé la question à la base. Moi j'ai proposé une solution... regarde + haut...
samedi 21 octobre 2006 à 18:08:03 | Re : tableau de caractère

sakjimh

ah oui oui je vois j'ai confondu le \n avec le \0 de la fin de la chaine merci titi035 merci aussi ombitious developper mais je cherche une solution sans les *pointeur
samedi 21 octobre 2006 à 18:39:44 | Re : tableau de caractère

Ombitious_Developper

Salut :

Il faut que tu prend l'habitude d'utiliser les char *
C'est le coeur du C.

Score :

Titi035 1 - 0 Ombitious_Developper


Cette discussion est classée dans : caractère, tableau, include, for, char


Répondre à ce message

Sujets en rapport avec ce message

Tableau à 2 dimension [ par manta7 ] Salut, depuis je sais pas combien de temps je galere juste pour passer un tableau a deux dimensionsVoici mon code,#include void tablo(char [][10]); m Inversion tableau!!! [ par tweeti08 ] Ami(e)s du soir Bonsoir!!! ; j'oraisbesoin d'une petite intervention sur mon programme. J'explique ceci est un tableau que j affiche seulement il faud tableau de chaine de caractère [ par delaktn ] salut, Je réalise une application dont je besoin d'un tableau de chaine de caractère et voila la déclaration de ce tableau: char* t[10]; j'ai réalisé Allocation dynamique tableau 2D : erreur de seg [ par noname001 ] Bonjour à tous, [^^happy13] j'aimerais faire appel à vos lumières concernant deux codes. Ils ont tous les deux pour but de créer un tableau 2D dynami nbr premier [ par rama340 ] [size=200][code=cpp]puvez vous me corrigée mon prg ; svp;il est ecri en c;(concernent les nbrs premiers); #include #include char nbr_premier(char t[], tableau de chaine de caractère [ par fiorellafatma ] salut à tous je cherche à inverser les caractère des mot dans un tableau de mot voici montravail qui n'a pas marché et je vous demande de l'aide [^^p [Xcode]Aide integrer image [ par mirmoleboss ] Bonjour, Voilà j'ai fait ce petit code mais il ne marche pas enfin il marchait mais l'intégration d'une image ne marche pas, je ne vois pas d'où vient besoin d'aide sur un programme en C éxécutable mais qui se bloque au début " recherche et affichage de palindromes " [ par nirvanitta ] salut tous le monde Mon programme consiste a ouvrir un fichier et chercher tous les palindromes et les afficher avec leurs numéros de lignes et leurs rectification dune code C et/ou aide sur l'algorithme [ par negets ] bonjour, besoin d'aide; j'aimerai dégager l'algorithme de ce code afin de le programmer sous matlab je connais plus rien en C et C++(je commence à lir


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales