|
|
|
|
Bonjour,
J'ai créé une fonction C qui permet de supprimer les espaces d'une chaine de caractères mais elle ne fonctionne pas correctement. Pourquoi ???? Merci de votre aide
void suppSpace(char * ligneSpace){
char ligne[80];
int nb;
int i=0;
int j=0;
nb=strlen(ligneSpace);
for(i;i<nb;i++)
{
if((ligneSpace[i]!=' ') || (ligneSpace[i]!='\n'))
{ligne[j]=ligneSpace[i];
j=j+1;}
}
strncpy(ligneSpace,ligne,80);}Slt, ca résoudra peut etre pas ton pb, mais je pense que tu peux améliorer 2-3 trucs
|
Vrai pour la limite ( i <= nb, ce qui permet de transférer le "\0" terminal ) et l'opérateur logique ( && ), mais évidemment pas pour l'indice ( j ) à conserver.
ligneSpace[j++]=ligneSpace[i]; Nota : la fonction strLen() recherche (et s'arrête sur) le premier caractère "\0" de la chaîne. |