chaine de caractere . - C++ - Programmation
Marsh Posté le 27-03-2003 à 08:21:42
WarmasterCS a écrit : Helou bon je suis relou avec mes questions mais bon ^^ : |
pour la saisie :
char *bob;
if (gets(bob)!=NULL)
{
//ton traitement
}
question 2 :
int i=1;
char *where1, *where2;
char *result;
char * chaine = "chaine ds laquelle chercher ? et :\n"
where1 = strchr( chaine, '?' );
where2 = strchr(chaine, ':';
result = malloc((where2-where1)+1);
while (where1+i != where2)
{
result[i-1] = where1[i];
i++;
}
result[i-1]='\0';
je ne l'ai pas teste mais ca doit etre qqchose comme ca.
Le resultat devrai te donner " et " a condition que le ? se trouve toujours avant le : sinon il faut adapter un peu
Marsh Posté le 27-03-2003 à 11:15:57
Merci j ai un peu fais a ma sauce et tt est bon sauf une erreur a cette ligne : result = malloc((where2-where1)+1);
le compilateur me dis : invalid conversion from `void*' to `char*'
Marsh Posté le 27-03-2003 à 11:17:15
WarmasterCS a écrit : Merci j ai un peu fais a ma sauce et tt est bon sauf une erreur a cette ligne : result = malloc((where2-where1)+1); |
result = (char *)malloc((where2-where1)+1);
Marsh Posté le 27-03-2003 à 11:18:07
WarmasterCS a écrit : Merci j ai un peu fais a ma sauce et tt est bon sauf une erreur a cette ligne : result = malloc((where2-where1)+1); |
c juste, il faut caster car malloc renvoie un pointeur sur void dont il faut lui indiquer le type de la variable qui recoit le resultat. Ici char* =>
result = (char*)malloc((where2-where1)+1);
Marsh Posté le 27-03-2003 à 11:45:11
pourquoi ne pas reserver (avec un malloc, par exemple) un peu de place, et en cas de besoin de plus de mémoire, faire un realloc?
MALLOC(3) Manuel du programmeur Linux MALLOC(3) |
Marsh Posté le 27-03-2003 à 01:34:12
Helou bon je suis relou avec mes questions mais bon ^^ :
voila mon probleme : lors de l'initialisation par exemple char bob[30] le nombre de caractere est fixé .... hors la chaine varie de taille suivant ce que va rentré l'utilisateur , j pourrais mettre char bob[50000000000] pour etre sur mais bon c pas la bonne solution . le nombre de caractere est pas utile dans la suite du programme donc je me fou de savoir que y a 30 ou 50 caracteres (quoi que) . J voudrais juste que le tablo de caractere s'adapte a la longueur du texte que va rentré l'utilisateur . (char bob [] ne marchera pas ?)
Une autre question comment en C dire tout ce qui est apres le caractere '?' et avant le caratere ':' tu le range dans un tablo ?
---------------
un sabre est une arme. le kenjutsu, une technique de mort. Peu importent les bonnes intentions, c'est la seul vérité. On tue pour protéger. On tue pour que d'autres vivent. C'est ca, la vérité du sabre.