Extraire une chaine de caractère en retirant les espaces... [Résolu]

Fituza 23 Messages postés mardi 20 avril 2004Date d'inscription 16 octobre 2008 Dernière intervention - 13 déc. 2004 à 21:22 - Dernière réponse : Fituza 23 Messages postés mardi 20 avril 2004Date d'inscription 16 octobre 2008 Dernière intervention
- 14 déc. 2004 à 00:18
Bonsoir,
Je pose ici une question qui doit paraître évident pour la plupart d'entre vous mais enfin... voici le programme de base:
_______________________________________________
#include
#include <conio.h>

int main()
{
int counter = 0;

char * str = new char;
char * str2 = new char;
str= "Rigolons... ";
while(counter != 15)
{
if(str[counter] != ' ')
str2[counter] = str[counter];
counter++;
}
str2[counter+1] = '\0';
cout<<"counter: "<<counter<<endl;
cout<<"String 1: "<<str<<"."<<endl; // Test str avec espace
cout<<"String 2: "<<str2<<"."<<endl; // Test le résultat désiré doit-être str sans espace
getch();

return 0;
}
________________________________________________
Malheureusement ce code "plante" sous VC++ c'est pourquoi je demande votre aide et aussi savoir s'il y avait des manières plus élégente avec d'autre bibliothèque...

Fituza
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 13 déc. 2004 à 23:25
3
Merci
void cpySansEspaces(char *dst, char *src)
{ char *c src, *d dst;
while(*c) { if(*c !' ') *d++ *c;
c++;
}
*d = 0; // TERMINATEUR NULL OBLIGATOIRE
}

ciao...
BruNews, MVP VC++

Merci BruNews 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de BruNews
cs_AlexMAN 1537 Messages postés samedi 21 décembre 2002Date d'inscription 24 mai 2009 Dernière intervention - 13 déc. 2004 à 21:29
0
Merci
Je n'utilise pas new, mais a vu de nez, ya un pb d'allocation :

char * str = new char;
char * str2 = new char;

Tu alloues si jme trompe, 1char (== 1octet), tu ne peux donc pas parcourir ta chaine, puis ce kil ny en a tout simplement pas !
Alloue la taille kil te faut.

Et n'oublie pas les delete a la fin !

+2(p - n)
Commenter la réponse de cs_AlexMAN
Fituza 23 Messages postés mardi 20 avril 2004Date d'inscription 16 octobre 2008 Dernière intervention - 14 déc. 2004 à 00:18
0
Merci
Ca marche super sur les deux compilateurs.
Je n'aurai qu'un mot à dire... Merci :).




Fituza
Commenter la réponse de Fituza

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.