[C++] Couper un mot
Résolu
Leahkim
Messages postés
3219
Statut
Membre
-
Leahkim Messages postés 3219 Statut Membre -
Leahkim Messages postés 3219 Statut Membre -
Bonjour,
me revoila avec mes problemes de code !
cette fois je veux faire l'inverse !
j'ai donc fait une variable comme avant:
sprintf (nomsortie,"%s%s",nomentree,cod);
je me retrouve donc avec nomsortie="nomentreecod".
dans un autre programme qui récupère le nom dans une variable nomentree, je voudrais retrouver son nom d'origine.
c'est a dire partir de nomentreecod, arriver a nomentree.
Comment fait t'on pour soit soustraitre 3 caractere a une string, ou pour lui oter une autre string ?
me revoila avec mes problemes de code !
cette fois je veux faire l'inverse !
j'ai donc fait une variable comme avant:
sprintf (nomsortie,"%s%s",nomentree,cod);
je me retrouve donc avec nomsortie="nomentreecod".
dans un autre programme qui récupère le nom dans une variable nomentree, je voudrais retrouver son nom d'origine.
c'est a dire partir de nomentreecod, arriver a nomentree.
Comment fait t'on pour soit soustraitre 3 caractere a une string, ou pour lui oter une autre string ?
A voir également:
- [C++] Couper un mot
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Couper une video - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide
5 réponses
Ah mais oui mais là tu fais du vilain, tu tapes dans la mémoire qui n'est pas à toi.
M.
nomentree[ strlen( nomentree) - strlen( cod ) + 1 ] = '\0';
M.
Re
Si c'est juste pour couper violemment :
(A vérifier le +1, j'oublie toujours ^^)
Ceci dit c'est du C et non du C++, acceptable quand même ?
M.
Si c'est juste pour couper violemment :
nomsortie[ strlen( nomsortie ) - strlen( cod ) + 1 ] = '\0';
(A vérifier le +1, j'oublie toujours ^^)
Ceci dit c'est du C et non du C++, acceptable quand même ?
M.
non, ça ne marche malheuresmeent pas:
#include <stdio.h>
#include <string.h>
main()
{
char nomentree[20]="TRUC.doccod";
char nomsortie[30]="000";
char cod[4]="cod";
int size_t=0;
nomsortie[ strlen( nomentree ) - strlen( cod ) + 1 ] = '\0';
printf ("%s",nomsortie);
system("pause");
}
et le programme m'affiche 000...
une autre idee ?
#include <stdio.h>
#include <string.h>
main()
{
char nomentree[20]="TRUC.doccod";
char nomsortie[30]="000";
char cod[4]="cod";
int size_t=0;
nomsortie[ strlen( nomentree ) - strlen( cod ) + 1 ] = '\0';
printf ("%s",nomsortie);
system("pause");
}
et le programme m'affiche 000...
une autre idee ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bon, ben j'ai toruvé une autre solution ! (CCM me fait trouver mes solutions tout seul mdr.
char nomentree[20]="TRUC.doccod";
char nomsortie[30]="000";
char cod[4]="cod";
int size_t=0;
size_t=strlen (nomentree);
strncpy(nomsortie,nomentree,(size_t-3));
printf("%s",nomsortie);
voila, j'ai donc soustrait 3 caractère a nomentree, et je l'ai mis dans nom sortie. C'est plus long, mais ça fonctionne
merci a toi !
char nomentree[20]="TRUC.doccod";
char nomsortie[30]="000";
char cod[4]="cod";
int size_t=0;
size_t=strlen (nomentree);
strncpy(nomsortie,nomentree,(size_t-3));
printf("%s",nomsortie);
voila, j'ai donc soustrait 3 caractère a nomentree, et je l'ai mis dans nom sortie. C'est plus long, mais ça fonctionne
merci a toi !