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;
}