Découper un caractère

Fermé
blackdam Messages postés 327 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 13 février 2015 - 22 févr. 2007 à 10:42
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 - 22 févr. 2007 à 11:54
Me revoila! avec un nouveau problème sous la main!
J'ai une chaine de caractère que je voudrais découper.
En fait, j'ai ceci :
4000000113
Et je voudrais faire en sorte que dans une variable, j'ai le 400, dans une autre j'ai le 00113.
Alors comment séparer des chiffres (ou plus généralement des caractères)??
Merci de vos réponses, et merci aussi à ceux qui m'ont répondu auparavant!
A voir également:

11 réponses

Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
22 févr. 2007 à 10:49
Comme je te l'ai dit sur l'autre post, tu concatènes et c'est bon....

strcat la commande...
0
blackdam Messages postés 327 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 13 février 2015 35
22 févr. 2007 à 10:53
Euh, concaténer ne veux pas dire "rassembler"?"réunir"??
moi je veux justement les désassembler!...
je ne te comprend pas trop là!
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
22 févr. 2007 à 10:59
Salut,

dans quel langage?

voici en perl
echo 4000000113 | perl -ne '($v1,$v2) = $_=~ /^(\d\d\d).*(\d{5})$/; print "v1 = $v1 et v2=$v2\n"'
--
lami20j
0
blackdam Messages postés 327 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 13 février 2015 35
22 févr. 2007 à 11:01
En C...désolé de pas avoir précisé!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
22 févr. 2007 à 11:02
Ah mince autant pour moi dsl !!!!!

Pour faire l'inverse tu peux faire une boucle for qui prend caractère par caractère et le met dans une autre chaine. En pratique tu considères ta chaine comme un tableau et tu copies les 3 premieres cases dans une autre chaine.
0
blackdam Messages postés 327 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 13 février 2015 35
22 févr. 2007 à 11:10
Ben oui, mais comment faire pour parcourir la chaine de caractère caractère par caractère??c'est sa mon problème?
Si je savais faire sa, bien sur ensuite je stocke les caractères qui m'interresent dans un tableau pour les réutiliser après!
0
andejen Messages postés 148 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 30 juillet 2008 22
22 févr. 2007 à 11:31
pas testé mais dans ton cas particulier ca doit donner un truc du type:

char tab[10]='4000000113 ';
char debut[3];
char fin[7];
for(i=0; i<3, i++)
{
strctat(debut,tab[i]);
}
for(i=3; i<10, i++)
{
strctat(fin,tab[i]);
}
0
blackdam Messages postés 327 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 13 février 2015 35
22 févr. 2007 à 11:32
Bon, je vais etre le plus précis possible.
J'aurais besoin d'un code qui me permette de faire sa:
chaine de caractère : 123456 (attention ce n'est pas un nombre mais bien une chaine de caractère!!)
ce que je veux afficher : 1,2,3,4,5,6 (les avoir séparer quoi!)
Je pense que sa doit etre possible quand meme
Merci!
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
22 févr. 2007 à 11:35
Bonjour,

En C, une chaine de caractères n'est rien d'autre qu'un tableau de caractères. Parcours la chaine comme tu le ferais pour un tableau, et ce sera bon !

Xavier
0
andejen Messages postés 148 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 30 juillet 2008 22
22 févr. 2007 à 11:38
dans ce nouveau cas
char chaine_debut[17]='lachainequetuveux '; 
char chaine_finale[33];
for(int i=0; i<17; i++)
{
strctat(chaine_finale, chaine_debut[i];
strcat(chaine_finale,',');
}
0
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
22 févr. 2007 à 11:54
Ben oui ta chaine c'est un tableau à la base.

si tu as "123456" dans ta chaine tu fais une boucle for

for(i=0;i<6;i++)
{
//Fais ton boulot sur chaine[i]
}

Si ensuite tu comptes travailler sur les 3 premiers chiffres, tu fais ton for sur les 3 premiers et tu concatènes.
0