Prendre une tranche d'un tableau (string) C++ [Résolu]

Signaler
-
Whismeril
Messages postés
14413
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
29 mars 2020
-
Bonjour, comme exprimé dans le titre, j'aimerais savoir si il existe un moyen (fonction,opérateur...) qui permet de prendre une tranche d'un tableau, et plus particulièrement d'un string, pour l'utiliser dans strcpy().
Par exemple:

char monChar[100];
string monString="abcde";

strcpy(monChar,monString[0,3]);

Merci.
Cordialement
Simac

5 réponses

Messages postés
14670
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
28 mars 2020
139
Bonjour,

de mes souvenirs avec le C, il y a strncopy (ou strncpy) qui accepte en 3ième argument la longueur max à copier.

strncpy(monChar,monString,3);

Messages postés
3805
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 mars 2020
98
Bonjour.

Si tu es en C++, tu n'as aucune raison d'utiliser strcpy, ou même un char*... Pose-toi d'abord la question de la pertinence d'utilisation, li y a de forte chance que tu partes sur quelque chose d'alambiquée.

Je vais tout de même répondre techniquement à ta question, tout en reprécisant que tu pars sur un design potentiellement mauvais.

char monChar[100];
std::string monString = "abcde";
strcpy(monChar, monString.substr(0, 3).c_str());


__________________________________________________________________________________________________
Améliorez votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
D'accord, merci pour vos réponses, l'extraction était pour un fichier texte: prendre deux informations dans un fichier (du genre
nom=prénom
) pour les stocker dans deux chaines de caractères.

Merci encore! Cette question est résolue!

Simac
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
17
Comme il est dit "tableau", alors c'est bien char[].
Sans aucune boucle ni autre biniouterie:
char A[24];
char res[4];

*((DWORD*) res) = *((DWORD*) A);
res[3] = 0;


ciao...
Messages postés
14413
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
29 mars 2020
365
Si la question est résolue, merci de la marquer comme tel avec le lien sous le titre.
Je le fais cette fois.