int sgstr_ltrim (char *string, char *ws) { char mask[256]; int i; for(i=0; i<256; i++) { mask[i] = '\0'; } while(*ws) { mask[(uchar)*ws] = *ws; ws++; } char *ptr = string; while(*ptr) { if(mask[(uchar)*ptr]) { ptr++; } else { break; } } while(*ptr && ptr != string) { // shift the string until we reach \0 *string = *ptr; ptr++; string++; } *string = *ptr; // now copy over our null terminus return 0; } int sgstr_rtrim (char *string, char *ws) { char mask[256]; int i; for(i=0; i<256; i++) { mask[i] = '\0'; } while(*ws) { mask[(uchar)*ws] = *ws; ws++; } int len = strlen(string); while(len) { len--; if(mask[(uchar)string[len]]) { string[len] = '\0'; } else { break; } } return 0; }