📄 strfnct.h
字号:
/* OpenWebSpider * * Authors: Stefano Alimonti AND Stefano Fantin * Version: 0.7 * E-Mails: shen139 [at] openwebspider (dot) org AND stefanofantinguz@yahoo.it * * * This file is part of OpenWebSpider * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */#ifndef __STRFNCT#define __STRFNCT#define TOKENS " ,.;:|+*-_\"'\t\r\n\\/<>()[]{}|!&=@#"/* atoupper * in -> out <- maxout -> * in = "HellO" => out = "HELLO" */int atoupper(char* in, char* out, int maxout){ memset(out,0,maxout); strncpy(out,in,maxout); _strupr(out);return 1;}/* UnToken *str -> Tokens -> out <- len -> * str = "test1\n2\r3;!4" Tokens = "\n\r;" ==> out = "test123!4" */int UnToken(char* str,char* Tokens,char* out,int len){int c,i,x=0,tokenfound,y;y=MIN(len,(signed)strlen(str)); for(c=0;c<y;c++) { tokenfound=0; for(i=0;i<(signed)strlen(Tokens);i++) if(str[c]==Tokens[i]) tokenfound=1; if(tokenfound==0) out[x++]=str[c]; } out[x]=0;return 1;}/* bTokenIn * str -> Tokens -> len -> 1|0 <- * str = "test1\n2\r3;!4" Tokens = "\n\r;" ==> 1 */int bTokenIn(char* str,char* Tokens,int len){int c,i,y;y=MIN(len,(signed)strlen(str)); for(c=0;c<y;c++) for(i=0;i<(signed)strlen(Tokens);i++) if(str[c]==Tokens[i]) return 1;return 0;}/* OnlyOneSpace * str -> out <- len -> * str = "test1 2 4 4" out = "test1 2 4 4" */int OnlyOneSpace(char* str,char* out,int len){int c,x=0; for(c=0;c<(signed)strlen(str);c++) { if(x && out[x-1]==' ' && str[c]==' ') //if x>0 and last char is space and current char is space -> don't add this char continue; else out[x++]=str[c]; if(x>=len) break; } out[x]=0;return 1;}/* ReplaceChr * replaces all occourences of a char(bus) with sub * string = "test" bus='s' sub='x' => "text" */int ReplaceChr(char* string, char bus, char sub){int i; for(i=0;i<(signed)strlen(string);i++) { if(string[i]==bus) string[i]=sub; }return 1;}/* ReplaceStr * replaces all occurrences of a string(bus) with sub */int ReplaceStr(char* string,char* strOut, char* bus, char* sub){int x=0,y=0; strOut[0]=0; for(x=0;x<(signed)strlen(string);x++) { if(strnicmp(string+x,bus,strlen(bus))==0) { strcat(strOut,sub); x+=strlen(bus)-1; y+=strlen(sub); continue; } strOut[y++]=string[x]; strOut[y]=0; }return 1;}/* RemoveShit * converts all unwanted chars in a string to ' ' */void RemoveShit(char* text){int i;unsigned char curC; for(i=0;i<(signed)strlen(text);i++) { curC=text[i]; /* UnHtml() */ if( /*!( (curC>=32 && curC<=125) || (curC>=192 && curC<=255) ) ||*/ curC=='\'' || curC=='\"' || curC=='\\') text[i]=' '; }}/* strtrim * removes starting and ending spaces */char* strtrim(char* in,char* out){int y,i;char* tmp; y=strlen(in); tmp = malloc(y+1); if(tmp==NULL) MemoryCorruptedHandler("strtrim"); tmp[0]=0; for(i=0;i<y;i++) { if(in[i]!=' ') { strcpy(tmp,in+i); break; } } y=strlen(tmp); for(i=y-1;i>=0;i--) { if(tmp[i]!=' ') { tmp[i+1]=0; break; } } strcpy(out,tmp); FREE(tmp);return out;}/* strWord * where -> word -> pos <- * strWord("web spider","spider") -> (char*) "spider" * strWord("webspider","spider") -> (char*) NULL */char* strWord(char* where,char* word){char* pFound;char beg;char end;int x,y;int nTokens; while( ( pFound = strstr(where,word) ) ) { if(pFound==NULL) return NULL; if(pFound==where) beg=' '; else beg=(char)pFound[-1]; end=pFound[strlen(word)]; if(end==0) end=' '; nTokens=strlen(TOKENS); for(x=0;x<nTokens;x++)/**//**/ /**/if(beg==TOKENS[x])/**//**/ /**//**/for(y=0;y<nTokens;y++) /**//**//**/if(end==TOKENS[y]) /**//**//**//**/return pFound; where=pFound+1; }return NULL;}char * my_stristr(char* s,char* find){char c, sc;unsigned int len; if ((c = *find++) != 0) { len = strlen(find); do { do { if ((sc = *s++) == 0) return (char *)0; } while (sc != c); } while (strnicmp(s, find, len) != 0); s--; }return s;}/***********************************************************************************************//***********************************************************************************************//*myCStr*//***********************************************************************************************/#define SSS 200int myCStrLen(struct __myCStr* myCStr){return myCStr->myStrLen;}int myCStrLenUpdate(struct __myCStr* myCStr){ myCStr->myStrLen=strlen(myCStr->myString);return myCStr->myStrLen;}char* myCStrCpy(struct __myCStr* myCStr, char* text){ FREE(myCStr->myString); myCStr->myString=(char*)malloc(strlen(text)+SSS); if(myCStr->myString==NULL) MemoryCorruptedHandler("myCStrCpy"); strcpy(myCStr->myString,text); myCStr->myStrLen=strlen(myCStr->myString); return myCStr->myString;}char* myCStrnCpy(struct __myCStr* myCStr, char* text, int n){ FREE(myCStr->myString); myCStr->myString=(char*)malloc(n+SSS); if(myCStr->myString==NULL) MemoryCorruptedHandler("myCStrnCpy"); memset(myCStr->myString,0,n+SSS); strncpy(myCStr->myString,text,n); myCStr->myStrLen=strlen(myCStr->myString); return myCStr->myString;}char* myCStrCat(struct __myCStr* myCStr, char* text){ myCStr->myString=(char*)realloc(myCStr->myString,myCStr->myStrLen+strlen(text)+SSS); if(myCStr->myString==NULL) MemoryCorruptedHandler("myCStrCat"); strcat(myCStr->myString,text); myCStr->myStrLen=strlen(myCStr->myString); return myCStr->myString;}char* myCStrnCat(struct __myCStr* myCStr, char* text, int n){ myCStr->myString=(char*)realloc(myCStr->myString,myCStr->myStrLen+n+SSS); if(myCStr->myString==NULL) MemoryCorruptedHandler("myCStrnCat"); strncat(myCStr->myString,text,n); myCStr->myString[myCStr->myStrLen+n]=0; myCStr->myStrLen=strlen(myCStr->myString); return myCStr->myString;}char* myCStrMemCpy(struct __myCStr* myCStr, char* blob, int blobLen){ FREE(myCStr->myString); myCStr->myString=(char*)malloc(blobLen+SSS); if(myCStr->myString==NULL) MemoryCorruptedHandler("myCStrMemCpy"); memcpy(myCStr->myString,blob,blobLen); myCStr->myStrLen=blobLen; return myCStr->myString;}char* myCStrMemCat(struct __myCStr* myCStr, char* blob, int blobLen){// |myString| + |blob|// myStrLen = myStrLen + blobLen myCStr->myString=(char*)realloc(myCStr->myString,myCStr->myStrLen+blobLen+SSS); if(myCStr->myString==NULL) MemoryCorruptedHandler("myCStrMemCat"); memcpy(myCStr->myString+myCStr->myStrLen,blob,blobLen); myCStr->myStrLen+=blobLen; return myCStr->myString;}/**************{int i;MYCSTR test;test.myString=NULL; myCStrCpy(&test, "prova"); for(i=0;i<1000;i++) myCStrCat(&test, "XX123XX123XX123XX123XX123XX123XX123XX123|||||||XX123XX123XX123XX123XX123XX123XX123CCCCCCCCCCCCCZZZZZZZZZZZZ>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<"); //printf("%s\n\n",test.myString); myCStrMemCpy(&test, "asder",5); for(i=0;i<1000;i++) myCStrMemCat(&test, "123456",6); myCStrMemCat(&test, "\0",1); //printf("%s\n\n",test.myString); FREE(test.myString);return 1;}**************/#endif/*EOF*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -