|
|
|
|
Il y a deux maniéres de contourner le scanf("%s"
|
J'ai essayé ce que tu m'as proposé jojo, j'ai défini le tableau dynamique comme suit:
|
Au fait, ce que j'ai ecrit plus haut provient de différentes sources, mais je ne comprend pas ce que signifient les valeurs 20 et 25, la valeur 20 doit etre la taille de mon tableau, si c'est le cas, je me suis trompé en disant que mon prog attend 50 caractére car le tab n'en contient que 20... puis le '25', je sais pas a quoi il sert...
|
Pour la fonction malloc(memory allocation) je pense qu'il vaut mieux que tu recherches par toi meme(utilise google par exemple).
|
Salut foobar47,
|
Ben plutôt que d'utiliser une boucle, t'utilises le masque d'affichage %*[^\n]
scanf("%*[^\n]",chaine);
Ou alors tu utilises le gets(chaine) ou fgets. Je te mets un exemple dans un programme qui lit une chaîne de caractère ch et détermine la longueur de la chaîne avec un pointeur pt et le programme n'utilise pas de variables numériques. #include <stdio.h>
#include <stdlib.h>
int main(void)
{
char ch[101]; // déclaration du tableau ch de type char avec possibilité d'insérer 100 caractères, on prévoit aussi 1 espace supplémentaire pour la \0
char *pt; // déclaration du pointeur pt de type char
scanf("%*[^\n]",ch); //ou gets(ch); // lecture de la chaine de caractère
//scanf ("%s",ch); // --> Mauvais car impossible d'insérer des espaces
pt=ch; // le contenu de pt est l'adresse de la chaîne (du 1er élément)
for(pt=ch;*pt;pt++); // boucle avec initialisation de pt à ch, faire tant que *pt est différent de 0 (car à la fin des chaînes de caractères se glisse un \0), et on incrémente pt de 1
printf("%d",pt-ch); // affichage du nombre d'élément grâce à la soustraction de pt - ch
return(0);
}
Par contre j'ai un petit problème avec le scanf car quand j'utilise le scanf à la place de gets ou le %s il me met tout le temps 15 -_- Je me disais que le mieux se serait de me faire passer pour un sourd-muet. La vitesse de la lumière est plus rapide que celle du son, c'est pour cela qu'on a l'air intelligent avant d'avoir l'air con. |

