ucx/string.c

changeset 96
fbbff331beba
parent 95
ecfdc1c4a552
child 97
499e1b465d77
equal deleted inserted replaced
95:ecfdc1c4a552 96:fbbff331beba
159 } 159 }
160 160
161 sstr_t sstrdup(sstr_t s) { 161 sstr_t sstrdup(sstr_t s) {
162 sstr_t newstring; 162 sstr_t newstring;
163 newstring.ptr = (char*) malloc(s.length + 1); 163 newstring.ptr = (char*) malloc(s.length + 1);
164 newstring.length = 0;
164 if (newstring.ptr) { 165 if (newstring.ptr) {
165 newstring.length = s.length; 166 newstring.length = s.length;
166 newstring.ptr[newstring.length] = 0; 167 newstring.ptr[newstring.length] = 0;
167 168
168 memcpy(newstring.ptr, s.ptr, s.length); 169 memcpy(newstring.ptr, s.ptr, s.length);
170 newstring.length = 0; 171 newstring.length = 0;
171 } 172 }
172 173
173 return newstring; 174 return newstring;
174 } 175 }
176
177 sstr_t sstrtrim(sstr_t string) {
178 sstr_t newstr = string;
179 int i;
180 for(i=0;i<string.length;i++) {
181 char c = string.ptr[i];
182 if(c > 32) {
183 break;
184 }
185 }
186 newstr.ptr = &string.ptr[i];
187 newstr.length = string.length - i;
188
189 for(i=newstr.length-1;i>=0;i--) {
190 char c = newstr.ptr[i];
191 if(c > 32) {
192 break;
193 }
194 }
195 newstr.length = i + 1;
196
197 return newstr;
198 }

mercurial