IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Malcomprehension d'un code


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 110
    Par défaut Malcomprehension d'un code
    Bonsoir,

    J'ai un code basique qui retourne une chaine en omettant un caractère ciblé cependant il y a quelque chose que je ne saisie pas dedans le voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #define T 50
     
    int main()
    {
    	char chaine1[T]="Bonjour je suis une chaine";
    	char chaine2[T];
     
    	int i, j, longu;
     
    	longu=strlen(chaine1);
     
    	for (i=0;i<longu;i++)
    	{
    		if (chaine1[i] != 'e')
    		{
    			chaine2[j]=chaine1[i]; //Pourquoi utiliser un autre indice "j" pourquoi pas reprendre le "i" 	
    			j++;
    		}
    	}
    	chaine2[j]='\0';
     
    	printf("Voici la nouvelle chaine: %s\n",chaine2);
    Merci de votre attention

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Salut

    Attention ! Ta variable j n'est pas initialisée.

    //Pourquoi utiliser un autre indice "j" pourquoi pas reprendre le "i"
    Si le but est de copier la chaine contenue dans un tableau vers un autre tableau, en supprimant un caractère spécifique (le 'e' dans ton exemple), il faut bien que les deux tableaux aient deux indices respectifs. Sinon, comment veux-tu faire ?
    Tu te retrouverais sinon avec une copie du genre : "Bonjour j* suis un* chain*" (tes 'e' seraient remplacés par un "trou", c'est-à-dire une valeur autre, quelconque ; j'ai mis une étoile juste pour l'exemple). Car chaque case de la mémoire contient toujours une valeur, quelle qu'elle soit.

    Il te faut donc une variable (qui sert d'indice) pour le tableau 1, qui sert à le parcourir, et une autre pour le tableau 2 qui s'incrémente aussi, sauf lorsque le caractère interdit est rencontré.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 110
    Par défaut
    aa d'accord j'ai compris merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. De la rapidité du code
    Par jfloviou dans le forum Contribuez
    Réponses: 233
    Dernier message: 29/05/2009, 02h17
  2. code pour interbase 6.0 et 6.5 de generateur
    Par tripper.dim dans le forum InterBase
    Réponses: 4
    Dernier message: 01/07/2002, 11h29
  3. [MFC](encapsulation ADO) ou placer le code
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 13/06/2002, 14h58
  4. Explorateur de code C
    Par Zero dans le forum C
    Réponses: 14
    Dernier message: 06/06/2002, 09h41
  5. OmniORB : code sous Windows et Linux
    Par debug dans le forum CORBA
    Réponses: 2
    Dernier message: 30/04/2002, 17h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo