String String::GetAndRemoveFirstWord(char separator) { String temp; // Search for separator for (int i=0;(i<length)&&(data[i]!=separator);i++); //OK // Found? if (i==length) { // If not then result is the whole string temp=*this; // Clear (because all was taken) length=0; SAFE_DELETE_ARRAY(data); data=new char[1]; data[length]=0; } else { temp.CreateFromNullTerminatedString(data,i); memmove(data,data+i+1,length-i); length-=i+1; } return temp; }
//------------------------------------------------------------------ // String splitting functions //------------------------------------------------------------------ String String::GetSubString(int first,int _length) const { String temp; if ((first>=0)&&(_length>0)&&(_length+first<=length)) { temp.CreateFromNullTerminatedString(data+first,_length); } return temp; }