Une fonction qui remplace les espace par '-'
bismail2
Messages postés
13
Statut
Membre
-
Canard007 Messages postés 5936 Statut Contributeur -
Canard007 Messages postés 5936 Statut Contributeur -
Pouvez vous me dire pourquoi ce programme affiche ---------------- à la place de Salut-camarade-- et n a la valeur de 16 à la place de 3
#include <stdio.h>
char* remplace(char *chaine)
{
static int n;
int i;
for(i=0; *(chaine+i)!='\0'; i++)
{
if (*(chaine+i)='\0x20')
{
*(chaine+i)='-';
n++;
}
else
;
}
return chaine;
}
int main(int argc, char *argv[])
{
char* n;
char chaine[100]="Salut camarade ";
n=remplace(chaine);
printf("%s", n);
getchar();
return 0;
}
Merci
#include <stdio.h>
char* remplace(char *chaine)
{
static int n;
int i;
for(i=0; *(chaine+i)!='\0'; i++)
{
if (*(chaine+i)='\0x20')
{
*(chaine+i)='-';
n++;
}
else
;
}
return chaine;
}
int main(int argc, char *argv[])
{
char* n;
char chaine[100]="Salut camarade ";
n=remplace(chaine);
printf("%s", n);
getchar();
return 0;
}
Merci
A voir également:
- Une fonction qui remplace les espace par '-'
- Espace insécable - Guide
- Site qui remplace coco - Accueil - Réseaux sociaux
- Fermeture de Coco : les internautes à la recherche d'un remplaçant - Accueil - Réseaux sociaux
- Fonction si et - Guide
- Espace de stockage gmail plein - Guide
7 réponses
tu as seulement été un pe distrait avec ton test:
if (*(chaine+i)='\0x20')
devrait etre:
if (*(chaine+i)=='\0x20')
l'affectation (=) est toujours vraie, contrairement à la comparaison
a+
if (*(chaine+i)='\0x20')
devrait etre:
if (*(chaine+i)=='\0x20')
l'affectation (=) est toujours vraie, contrairement à la comparaison
a+
Hello !
Faux. L'affectation n'est vraie que si une expression non nulle est affectée à une lvalue (ici, *(chaine+i) ).
Faux. L'affectation n'est vraie que si une expression non nulle est affectée à une lvalue (ici, *(chaine+i) ).
enfin faut mettre == et non pas = c'est pas une affectation qu'il veut mais une comparaison on va pas chipoter ^^
de toutes maniere moi je conseil strcmp pour la comparaison de chaine de carateres...
COIN!
de toutes maniere moi je conseil strcmp pour la comparaison de chaine de carateres...
COIN!
Sans vouloir chipoter, ce n'est pas une comparaison de chaînes de caractères mais une comparaison de caractères.
À noter :
Vaut mieux écrire Chaine[i]
au lieu de *(Chaine + i)
c'est plus clair et plus utilisé.
À noter :
Vaut mieux écrire Chaine[i]
au lieu de *(Chaine + i)
c'est plus clair et plus utilisé.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ca depend du programmeur je dirai..
et oui effectivement c'est un comparaison de cahr j avais juste regardé la declaration...^^
Quand a la syntax finalement c'est au bon vouloir du programmeur finalement tant que tout est correctement commenté ;-)
COIN!
et oui effectivement c'est un comparaison de cahr j avais juste regardé la declaration...^^
Quand a la syntax finalement c'est au bon vouloir du programmeur finalement tant que tout est correctement commenté ;-)
COIN!
Justement non. Ce n'est pas au "bon vouloir" du programmeur. Quand tu bosses sur un gros projet de plusieurs dizaines de programmeurs. Tu imagines le manque de cohérence si chacun fait ce qu'il veut. Pour tout langage, il y a des règles et des recommandations de codage qui permettent de résoudre en partie le problème inhérent à la présence de plusieurs développeurs.
Oui mais la :
1- je pense pas qu'il soit dans une boite
2-Ces regles sont inherente a la société et peuvent varié de l'une à l'autre.
3- je ne dit pas de faire cequ'il veut mais bon l'objectif etant de faire des modules tant que les entrée sortie sont definis et qu'il n'y a pas d'effet de bords et que la performance est bonne on ne va pas revenir sur ton code car la façon dont tu fait ta boucle ne convient pas a ton voisin...
COIN!
1- je pense pas qu'il soit dans une boite
2-Ces regles sont inherente a la société et peuvent varié de l'une à l'autre.
3- je ne dit pas de faire cequ'il veut mais bon l'objectif etant de faire des modules tant que les entrée sortie sont definis et qu'il n'y a pas d'effet de bords et que la performance est bonne on ne va pas revenir sur ton code car la façon dont tu fait ta boucle ne convient pas a ton voisin...
COIN!