[C++] Couper un mot

Résolu
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 ?
A voir également:

5 réponses

Mahmah Messages postés 497 Statut Membre 125
 
Ah mais oui mais là tu fais du vilain, tu tapes dans la mémoire qui n'est pas à toi.


nomentree[ strlen( nomentree) - strlen( cod ) + 1 ] = '\0'; 


M.
0
Mahmah Messages postés 497 Statut Membre 125
 
Re

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.
-2
Leahkim Messages postés 3219 Statut Membre 281
 
je vais essayer et je reviens te dire ce que ça a donné
-2
Leahkim Messages postés 3219 Statut Membre 281
 
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 ?
-2

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

Posez votre question
Leahkim Messages postés 3219 Statut Membre 281
 
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 !
-2