Programmation c
sabrina
-
blurk Messages postés 486 Date d'inscription Statut Membre Dernière intervention -
blurk Messages postés 486 Date d'inscription Statut Membre Dernière intervention -
bonjour
je debute en langage c et je ne vois pas porquoi ma fonction ne marche pas je ne sais pas comment retourner une chaine de caracteres
char* bmtoa(void){
char *ptrch;
char chaine[100000];
ptrch= &chaine;
char trait='-';
char diese='#';
char saut='\n';
int i,j;
for(i=0;i<WIDTH;i++)
for(j=0;j<HEIGHT;j++){
switch(get_bit(i,j)){
case 0:sprintf(chaine,"%s%c",chaine,trait);break;
case 1:sprintf(chaine,"%s%c",chaine,diese);break;
default:"erreur bmtoa";break;
}
}
sprintf(chaine,"%s%c",chaine,saut);
return ptrch;
}
merci de votre aide
je debute en langage c et je ne vois pas porquoi ma fonction ne marche pas je ne sais pas comment retourner une chaine de caracteres
char* bmtoa(void){
char *ptrch;
char chaine[100000];
ptrch= &chaine;
char trait='-';
char diese='#';
char saut='\n';
int i,j;
for(i=0;i<WIDTH;i++)
for(j=0;j<HEIGHT;j++){
switch(get_bit(i,j)){
case 0:sprintf(chaine,"%s%c",chaine,trait);break;
case 1:sprintf(chaine,"%s%c",chaine,diese);break;
default:"erreur bmtoa";break;
}
}
sprintf(chaine,"%s%c",chaine,saut);
return ptrch;
}
merci de votre aide
A voir également:
- Programmation c
- Application de programmation - Guide
- Programmation envoi sms - Guide
- Programmation vb - Télécharger - Langages
- Programmation binaire - Guide
- Programmation télécommande porte de garage brico depot - Forum Matériel & Système
6 réponses
écrit en 30 secondes car mon boss est dans les parages
@+
char* bmtoa(void) {
int taille = 100000;
char *chaine = (char*)malloc(taille*sizeof(char));
sprintf(chaine,"\0");
char trait='-';
char diese='#';
char saut='\n';
int i,j;
for(i=0;i<WIDTH;i++)
for(j=0;j<HEIGHT;j++){
switch(get_bit(i,j)){
case 0:
sprintf(chaine+i, "%c\0", trait);
break;
case 1:
sprintf(chaine+i, "%c\0", diese);
break;
default:
sprintf(chaine, "erreur bmtoa a la position i=%d%c\0", i, saut);
return chaine;
}
}
sprintf(chaine+i, "%c\n\0", saut);
return chaine;
}
@+
char* bmtoa(void) {
int taille = 100000;
char *chaine = (char*)malloc(taille*sizeof(char));
sprintf(chaine,"\0");
char trait='-';
char diese='#';
char saut='\n';
int i,j;
for(i=0;i<WIDTH;i++)
for(j=0;j<HEIGHT;j++){
switch(get_bit(i,j)){
case 0:
sprintf(chaine+i, "%c\0", trait);
break;
case 1:
sprintf(chaine+i, "%c\0", diese);
break;
default:
sprintf(chaine, "erreur bmtoa a la position i=%d%c\0", i, saut);
return chaine;
}
}
sprintf(chaine+i, "%c\n\0", saut);
return chaine;
}
merci bcp c'est la premiere fois que je vois malloc vu que je n'en suis qu'au 3eme cours lol
j'aimerai comprendre pkoi chaine +i et non pas chaine tout seul
merci @+
j'aimerai comprendre pkoi chaine +i et non pas chaine tout seul
merci @+
ben parce que , c'est pareil que
avec
sauf que chatbotté a quelques cours d'avance ;-)
cordialement
¤
chaine[i]=saut;
avec
char chaine[100000]; // (ça marche beaucoup moins bien)
sauf que chatbotté a quelques cours d'avance ;-)
cordialement
¤
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
derniere question
qd j'affiche la chaine avec printf avec la methode de chaine+i
rien ne s'affiche
tandis qu'avec la premiere meth j'ai 1 affichage:
a quoi c dû
merci
qd j'affiche la chaine avec printf avec la methode de chaine+i
rien ne s'affiche
tandis qu'avec la premiere meth j'ai 1 affichage:
a quoi c dû
merci
printf("%s",chaine); // affiche la chaine depuis son début printf("%s",chaine+i); // affiche la chaine à partir du (i)ème caractere printf("%s", &chaine[i]); //idem
( avec un & parce que printf veut une adresse et rien d'autre)
Seulement, en sortie de boucle, i est égal à la longueur de la chaine, et arrivé au bout de cette chaine, il n'y a plus rien à afficher
¤