void StrCpy(String *dest,String src){
*dest = StrMake(StrLen(src));
String temp = *dest;
while(*src){
*temp++=*src++;
}
*temp = 0;
}
void StrFree(String *str){
free(*str);
*str = 0;
}
Status StrPrint(String str){
CHECK(str);
puts(str);
return TRUE;
}
String StrTok(String dest,String src){
if(dest)StrCpy(&STRBUFFER,dest);
CHECK(src&&STRBUFFER&&*STRBUFFER);
int length = StrLen(src);
String ch = StrChr(src, *STRBUFFER, length);
if(*ch == *STRBUFFER){
do{
*STRBUFFER++='\0';
CHECK(*STRBUFFER);
ch = StrChr(src, *STRBUFFER, length);
}while(*ch == *STRBUFFER);
}
String result = STRBUFFER;
String temp = result;
while(*temp) {
ch = StrChr(src, *temp, length);
if (*ch == *temp) {
*temp++ = '\0';
CHECK(*temp);
break;
}else{
temp++;
}
}
STRBUFFER = temp;
return result && *result result : 0;
}
String StrStr(String dest,String src){
CHECK(dest&&src&&*dest&&*src);
do{
String temp = src,rt = dest;
while(*temp == *rt){
temp++;rt++;
}
if(!*temp)return dest;
CHECK(*rt);
dest++;
}while(*dest);
return 0;
}