begin process at 2012 05 29 10:48:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Effacer les espaces


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Effacer les espaces

jeudi 2 février 2006 à 04:39:36 | Effacer les espaces

mast

Bonsoir !Je store une chaine de charactère dans un array[]="blah blah" et je voudrais savoir comment en effacer les espaces (ou tout autres caractères). La manière qui me semble la plus simple serait de faire un loop à travers chaque charactère de l'array array[0] à array[n] mais je ne sais pas comme trouver l'id de la dernière position de l'array ni comment effacer si c'est un espace, quelqu'un pourrait me donner un coup de main stp ?Merci !- Alex
jeudi 2 février 2006 à 09:26:56 | Re : Effacer les espaces

KeniiyK

Membre Club

taille de la chaine : strlen(array) (ne compte pas le '\0'), donc pour "blah blah" strlen(...)=9.

int compteurEspace=0;
char *result;
char *resultIter;
// on compte le nombre d'espace por l'allocation de la nouvelle chaine
for(int i=0;i<strlen(array);i++)
{
   if(array[i]==' ') compteurEspace++;
}

if(compteurEspace==0)
{
result=array;
// là c'est toi qui voit...
}
else
{
// +1 pour le '\0'
   result=(char*)malloc(strlen(array)-compteurEspace+1);
   resultIter=result;
   for(int j=0;j<strlen(array);j++)
   {
      if(array[j]!=' ')
      {
            *resultIter=array[j];
               resultIter++;
      }
   }
}

@+, KeniiyK
jeudi 2 février 2006 à 09:28:40 | Re : Effacer les espaces

KeniiyK

Membre Club

Et voila, je l'ai oublié
il faut ajouter *resultIter='\0'; en sortie du dernier FOR.

KeniiyK
jeudi 2 février 2006 à 10:33:57 | Re : Effacer les espaces

BruNews

Administrateur CodeS-SourceS
KeniiyK > excuse mais c'est vraiment très mauvais (on dirait du VB), tu parcours la chaine une multitude de fois.

en 1 seul parcours et refaite sur place:
char *c; *d;
c = d = array;
while(*c) {
  if(*c != 32) *d++ = *c; // SI != ESPACE
  c++;
}
*d = 0; // TERMINE LA CHAINE

ciao...
[ Lien ]
BruNews, MVP VC++
jeudi 2 février 2006 à 12:36:12 | Re : Effacer les espaces

KeniiyK

Membre Club

Je suis d'accord mais je ne sais quel est l'utilisation de la chaine ensuite ou s'il ne faut pas toucher à la première, etc.... On ne sait pas si c'est du C ou CPP.
Bref, j'ai donné ce code vite fait pour lui trouvé une solution.

Maintenant à lui de prendre celle qui lui convient le mieux.


Cette discussion est classée dans : espaces, effacer, array, blah, charactère


Répondre à ce message

Sujets en rapport avec ce message

Effacer les espaces dans une variable [ par ErrTu ] Salut,Je suis un débutant en C et je voudrai simplement envelver tous les espaces qui sont dans une variable.Comment faire ?Merci d'avance ... Supprimer les espaces dans un fichier texte!!! [ par salley ] Voila j'ai un fichier texte avec plein de chiffres et entre chaque chiffre 5 espaces, j'aimerais le modifier :1/ J'aimerais enlever les 50 premiers ca Chaine de charactère [ par AngeloVivaldi ] Salut ! Voila, je voudrai que l'opérateur puisse écrire une phrase avec des espaces ! mais quand je fais avec les tableaux de charactères, sa m'affich effacer un fichier [ par MLine ] Peut-etre que cette question est stupide, mais comment effacer un fichier (sous C++ builder 5)? il est déclaré comme ça :fstream iofile("truc.txt");Il UREGENT! MFC - Effacer zone client [ par MaDC ] salut je suis en projet pour le bts!!! :Sje cherche un moyen d'effacer la zone client d'un seul coup, je suis dans une MFC avec fenetre graphique clie effacer ecran [ par asmv ] merci de me repondrecomment effacer l'ecran avec visual c++ mode consolesalut array size too large [ par gameking ] Bonjour à vous, voici mon probleme. Dans mon programmr j'ai une structure et lorsque je la compile j'ai l,euueur array size too large. Je veux garder [Debutant] Effacer des fichiers [ par ideosphere ] Voila je voudrai effacer tout les .txt contenu dans un repertoire alors j'ai fait ca :void __fastcall TForm1::Button1Click(TObject *Sender){if (remove prise en compte des espaces [ par Rizokuri ] Salut,Je debute en C++ et j'ai un probleme: comment faire pour qu'une string accepte les espaces?Je m'explique: string machincin >> machinSi on tape " Effacer le contenu d'une fenetre... [ par Galmiza ] Salut,Actuellement, pour effacer l'ecran je trace un rectangle plein blanc sur la fenetre.Or bizarrement, cette methode fait anormalement ramer le PC


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales