J'ai essayé d'écrire une fonction qui obtient un pointeur vers un tableau de char, lit une chaîne de l'utilisateur et supprime tous les espaces au début de la chaîne jusqu'à ce que le premier caractère qui n'apparaît pas. Enfin, retournez la copie de la chaîne sans espace/s au début.strtok ne fonctionnait pas comme prévu
Par exemple,
pour l'entrée abcd
la fonction doit retourner un pointeur vers la chaîne abcd
.
pour l'entrée 123 123
la fonction doit renvoyer le pointeur vers la chaîne 123 123
.
La fonction est indiquée ci-dessous,
void read_RemoveSpace(char * str)/**read the rest of string**/
{
char tempRead[30];
fgets(tempRead,30,stdin);
char *ptr = strtok(tempRead, " "); /**remove spaces between command and other data**/
strcpy(str,ptr); /**copy the new string without the spaces.**/
}
Mais une raison strtok()
la fonction ne fonctionne pas comme prévu.
En cas d'entrée:
123 456
la fonction retourne que la première partie sans les espaces, mais pas le reste de la chaîne, à savoir qu'il pointe vers
123
Toutes les suggestions?
Et votre ** question ** !? – StoryTeller
Quel est le problème auquel vous faites face? Comment appelez-vous la fonction? Qu'est-ce qui est exactement stocké dans str après l'appel? – Vijay
'strtok_r()' fonctionne comme prévu, peut-être que vos attentes sont incorrectes ... –