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 :

Copie d'un tableau de caractères dans un autre, tous les 2 indices


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2024
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2024
    Messages : 20
    Par défaut Copie d'un tableau de caractères dans un autre, tous les 2 indices
    Bonjour à tous,

    Je souhaiterais copier un tableau de caractères dans un autre tableau tous les 2 indices. Je m'explique: dans la plupart des cas, on souhaite copier un tableau dans un autre case pour case.
    Exemple: on va appeler le premier tableau Depart et le second Copie. Depart = {'a','z','e','r','t','y'). On obtient alors pour le second tableau: Copie= {'a','z','e','r','t','y')
    Cependant, ce n'est pas ce que je veux faire ici. Un exemple permet de bien illustrer : Depart contient toujours la même chaine. Je souhaiterais que chaque case du second tableau contienne deux cases du premier.
    On obtient alors ceci: Copie={"az","er","ty"}.
    J'espère avoir été clair dans mes explications.
    J'ai déjà réussi à faire une copie toute simple comme évoqué au début mais étant débutant en langage c, je ne sais pas comment faire pour avoir une copie tous les 2 indices.

    Je remercie toute personne qui pourrait m'éclairer.

  2. #2
    CGi
    CGi est déconnecté
    Expert confirmé
    Avatar de CGi
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 061
    Détails du profil
    Informations personnelles :
    Localisation : France, Allier (Auvergne)

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 061
    Par défaut
    Comme on a pas vraiment de contexte, on va prendre ton exemple.
    Donc on part d'un tableau de six char que tu vas copier dans un tableau de 3 tableaux de 2 char.
    Je te donne la déclaration du tableau :
    Essais de faire la copie de ton tableau depart dans ce tableau et montre nous, nous t'aiderons si tu n'y arrive pas.
    Site : http://chgi.developpez.com

    Pourquoi faire simple quand on peut faire compliqué ? (Jacques Rouxel)

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2024
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2024
    Messages : 20
    Par défaut
    Merci beaucoup pour votre aide. J'ai cependant une question. J'ai appris que chaque chaine de caractère se termine par un caractère de fin de chaine qu'il faut prendre en compte lors de la déclaration. Du coup, moi j'aurais mis Depart [7] et Copie [3] [3]. Faut-il prendre en compte ce caractère de fin de chaine ?

  4. #4
    CGi
    CGi est déconnecté
    Expert confirmé
    Avatar de CGi
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 061
    Détails du profil
    Informations personnelles :
    Localisation : France, Allier (Auvergne)

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 061
    Par défaut
    Tu parlais de tableaux de caractères pas de chaînes de caractères. Ce n'est pas tout à fait la même chose. Les deux existe. D'ailleurs dans la présentation que tu en a fait, Depart = {'a','z','e','r','t','y') tu n'as pas mis de caractère de fin de chaîne.
    Alors il faut choisir ! Soit ce que je t'ai dit soit si tu pars sur les chaînes de caractères Ton depart sera une chaine de caractère et ta copie sera un tableau de trois chaînes de caractère (Chaque chaînes aura 2 caractères plus le caractère de fin de chaîne soit 3 caractère ce qui fait bien Copie [3] [3].

    Site : http://chgi.developpez.com

    Pourquoi faire simple quand on peut faire compliqué ? (Jacques Rouxel)

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2024
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2024
    Messages : 20
    Par défaut
    Oui excusez-moi, je voulais dire chaine de caractère et pas tableau de caractère et j'ai oublié le caractère de fin de chaine pour le tableau Depart.
    Je reviens sur ce que j'ai dit au sujet de mes déclarations: en fait j'aurais mis Depart [9] et Copie [3] [3]. Je crois que le compilateur considère un tableau 2D comme un tableau de tableau 1D. Donc ces déclarations permettraient d'avoir les mêmes dimensions car 3*3=9. Mais d'après edgarjacobs (et je suis certain que vous avez raison), mais déclarations précédentes étaient correctes alors que les tableaux n'avaient pas les mêmes dimensions. Je ne comprends pas très bien.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2024
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2024
    Messages : 20
    Par défaut
    Mes déclarations et pas mais déclarations. Excusez-moi pour la grosse faute d'orthographe.

  7. #7
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 753
    Par défaut
    Hello,

    Tu as écrit ta demande en travaillant sur des char, pas sur des chaines de caractères (tableau de caractères qui se termine par un \0). Donc la déclaration donnée par @CGi est correcte. La tienne également si tu travailles sur des chaines de caractères.

    La différence (simple exemple pour un affichage) entre tableau de caractères et chaine de caractères:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    char caract[3]={'1','2','3'};		// tabeau de caractères
    char str[4]={"123"};			// chaine de caractères
     
    for(int i=0; i<3; i++)
    	putchar(caract[i]);
    putchar('\n');
     
    printf("%s\n",str);

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

Discussions similaires

  1. Copier une table dans une autre tous les Lundi
    Par popovitch130 dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/09/2008, 15h41
  2. Réponses: 1
    Dernier message: 18/03/2008, 16h05
  3. Copie de feuilles d'un classeur dans l'autre
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/11/2007, 12h06
  4. [Spip] Tableau non affiché dans la partie "Articles les plus récents"
    Par Gigi95 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 27/09/2007, 12h27
  5. Pb: copie du contenu d'un repertoire dans un autre
    Par kam81 dans le forum Langage
    Réponses: 2
    Dernier message: 09/06/2007, 12h10

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