#include #include #include #include #include "etc.h" /* Elimine les blancs du début et de la fin d'une chaine Les blancs sont identifiés par isspace(). Il peut y avoir des blancs au milieu. */ export void strip(char *str) { char *debstr = str; strip_end (str); while (isspace(*debstr)) debstr++; strcpy(str, debstr); } #if 0 /* Elimine les blancs à la fin d'une chaine Les blancs sont identifiés par isspace(). Retourne l'adresse du dernier caractère + 1 (pointe sur le '\0') ATTENTION: Patch pour UNIX. Ctrl-Z est traité comme un blanc. Il semble qu'il y ait encore des programmes DOS qui ajoute un ctrl-Z à la fin du fichier. */ export char *strip_end(char *str) { int len = strlen(str); for (str += len - 1 ; len > 0 && (isspace(*str) || *str == 26) ; len--, str--) *str = '\0'; return str+1; } #endif #ifdef TEST static void test (const char *str) { char buf[100]; strcpy (buf,str); strcat (buf,"\r\n"); strip_end (buf); printf (":%s: len %d %d\n",str,strlen(str),strlen(buf)); } int main (int, char *[]) { printf ("isspace('\\r') = %d\n",isspace('\r')); printf ("isspace('\\n') = %d\n",isspace('\n')); printf ("isspace('x') = %d\n",isspace('x')); test ("allo"); test ("alallallalalal a lalala llalalal"); } #endif