?? util.c
字號:
}/* * 儂 毛int卞 晶[ * */int numstrIsKanji( char *str );int decimalstrToInt( char *str );int kanjistrToInt( char *str );int textToInt( char *str ){ char numstr[256]; if( !findNumberString(str,numstr,sizeof(numstr)) ) return 0; if( numstrIsKanji(numstr) ) return kanjistrToInt(numstr); else return decimalstrToInt(numstr);}/* * 醒襖毛 允 儂 互} 賄摯卅及井壑釵摯卅及井毛 * 婁醒 允月 儂 [醒儂毛 允 儂 動陸反殖氏匹反中仃卅中[ * 忒曰襖 賄摯卅日ㄠ}壑釵摯卅日ㄟ * str 互"一億四千萬。"及午五{忒曰襖1 * str 互"123"及午五{忒曰襖ㄟ * */int numstrIsKanji( char *str ){ int i,j; char tmp[3]; for( i=0;str[i]!='\0';i++ ){ if( str[i] & 0x80 ){ tmp[0] = str[i]; tmp[1] = str[i+1]; tmp[2] = '\0'; i++; }else{ tmp[0] = str[i]; tmp[1] = '\0'; } for( j=0;j<FIGURECHARNUM;j++ ){ if( strstr(UTIL_figurechar[j],tmp) ){ return 1; } } for( j=0;j<SPECIALCHARNUM;j++ ){ if( strstr(UTIL_specialchar[j],tmp) ){ return 1; } } } return 0;}/* * 蝸褡芊匹醒襖毛 仄兇 儂 毛int卞 晶 * char *str 儂 * 忒曰襖 儂 互 允醒襖 */int decimalstrToInt( char *str ){ double val; char tmp[3]; int i,j; val = 0; for( i=0;str[i]!='\0';i++ ){ if( str[i] & 0x80 ){ tmp[0] = str[i]; tmp[1] = str[i+1]; tmp[2] = '\0'; i++; }else{ tmp[0] = str[i]; tmp[1] = '\0'; } for( j=0;j<DECIMALCHARNUM;j++ ){ if( strstr(UTIL_decimalchar[j],tmp) ){ val = val*10+j; } } } if( val > 0x7fffffff ) return 0x7fffffff; else return (int)val;}/* * 摯匹 仄兇醒襖毛幫醒卞 晶 * char *str 醒襖毛 允 儂 * 忒曰襖 醒襖 * * str互"一億4千萬?"及午五忒曰襖 140000000 */int kanjistrToInt( char *str ){ double val,tmpval; char tmp[3]; int num,i,j,numflag; numflag = 0; num = 1; tmpval = 0; val = 0; for( i=0;str[i]!='\0';i++ ){ if( str[i] & 0x80 ){ tmp[0] = str[i]; tmp[1] = str[i+1]; tmp[2] = '\0'; i++; }else{ tmp[0] = str[i]; tmp[1] = '\0'; } for( j=0;j<SPECIALCHARNUM;j++ ){ if( strstr(UTIL_specialchar[j],tmp ) ){ if( numflag == 1 ) tmpval += num; if( j == 0 ) val += tmpval*10000; else if( j == 1 ) val += tmpval*100000000; num = 1; numflag = 0; tmpval = 0; goto nextchar; } } for( j=0;j<FIGURECHARNUM;j++ ){ if( strstr(UTIL_figurechar[j],tmp) ){ if( j == 0 ) tmpval += num*10; else if( j == 1 ) tmpval += num*100; else if( j == 2 ) tmpval += num*1000; num = 1; numflag = 0; goto nextchar; } } for( j=0;j<DECIMALCHARNUM;j++ ){ if( strstr(UTIL_decimalchar[j],tmp) ){ num = j; numflag = 1; goto nextchar; } }nextchar: continue; } if( numflag == 1 ) tmpval += num; val += tmpval; if( val > 0x7fffffff ) return 0x7fffffff; else return (int)val;}/*---------------------------------------- * 儂 及 卞踏井木化中月幫醒毛必永玄允月[ * NPC及 平旦玄荸 卞支仁分勾[ * 兇分仄 卞中日氏 儂互丐月樺寧 骰允月[ * 耨痊互 切卅中失伙打伉術丞卞 凳[ * 婁醒 * hoge char* 荸 允月 儂 * 忒曰襖 * 荸 仄兇幫醒[ * * “ * "ringo ( 吧噗吧噗星人 ) : 100" * 及樺寧反100互井尹月[ * "ringo ( 吧噗吧噗星人 ) : 是100" * 手100卞卅月[幻氏引卞NPC迕卅曰友[ ----------------------------------------*/int texttoiTail( char *hoge){ return 0; /* 壬什勻化兇及匹仇丹仄兇[公及丹切楮醒仍午壅允[ */#if 0 int len = strlen(hoge); if( len == 0 )return atoi(hoge); /* 井日繭仄化 賡卞醒儂毛葦勾仃月 */ while(--len && len >= 0){ if( isdigit(hoge[len]) ) break; } while( --len && len >= 0 ){ if( !isdigit(hoge[len]) ) break; if( hoge[len]=='+' || hoge[len]=='-') break; } return atoi(hoge+len+1);#endif#if 0 int f = 0; for(i=len-1;i>=0;i--){ if( isdigit( hoge[i] ) ) f = 1; if( (f == 1) && !( isdigit(hoge[i]) || hoge[i]=='+' || hoge[i]=='-') ){ return atoi( hoge + i + 1 ); } } return atoi(hoge);#endif}/*---------------------------------------- * 儂 毛醒儂井升丹井民尼永弁仄化}醒儂分勻兇日 * 婁醒卞 木化忒允 * 婁醒 * arg 晶葭 * number 晶 毛醫 允月赭 * base 湘醒 * type 婁醒及滇( CTYPE 反 common.h 卞燭蛻今木化中月 ) * 忒曰襖 * TRUE(1) 岳 * FALSE(0) strtol互敦僬卞反岳 仄卅井勻兇 * 仇及凜及number反strtol及忒曰襖匹丐月 ----------------------------------------*/BOOL strtolchecknum( char* arg , void* number,int base ,CTYPE type){ char* buf; int num; num = strtol( arg, &buf, base); switch( type ){ case CHAR: *(char*)number = (char)num; break; case SHORT: *(short*)number = (short)num; break; case INT: *(int*)number = num; break; case DOUBLE: *(double*)number = (double)num; break; default: break; } if( strlen( buf ) >= 1 ) /* * 酸曰 儂互丐月午中丹儀反 晶仄五木化卅中午中丹儀卅及分[ */ return FALSE; return TRUE;}/*---------------------------------------- * src 井日 dels 匹隙爛仄兇 儂毛潸曰輪仁 * 田永弁旦仿永撲亙反巨旦弗□皿匹丐月儀卞鏜啦[ * 勾引曰田永弁旦仿永撲亙反綽輪匹五卅中[ * 婁醒 * src 凳今木月 儂 * char* 綽輪允月 儂( 儂 匹隙爛第) * 忒曰襖 * 卅仄 ----------------------------------------*/void deleteCharFromString( char* src , char* dels ){ int index=0; /* 匹五丐互曰及 儂 匹及 index */ int delength; /* dels 及贏今毛澀爛允月(劑仄反簧蘸失永皿及啃 */ int i=0,j;/* i 反 src 毛伙□皿允月 醒 j 反 dels 毛伙□皿允月 醒 */ delength= strlen( dels ); while( src[i] != '\0' ){ if( src[i] == BACKSLASH ) /* * 田永弁旦仿永撲亙卅及匹巨旦弗□皿允月 * 勾引曰戚及 儂反 橢瘀卞啖 允月 */ src[index++] = src[++i]; /* substitute next char */ else{ for( j = 0 ; j < delength ; j ++ ){ if( src[i] == dels[j] ) /* * 綽輪允月 儂分[方勻化 i 卞 1 毛兇允 */ goto incrementi; } /* * 壅允 卞隙爛今木化中卅中及匹戊疋□允月[ */ src[index++] = src[i]; } incrementi: i++; } src[index] = '\0';}/*---------------------------------------- * src 井日 dels 匹隙爛仄兇 儂毛潸曰輪仁 * 巨旦弗□皿反卅中 * 婁醒 * src 凳今木月 儂 * char* 綽輪允月 儂( 儂 匹隙爛第) * 忒曰襖 * 卅仄 ----------------------------------------*/void deleteCharFromStringNoEscape( char* src , char* dels ){ int index=0; /* 匹五丐互曰及 儂 匹及 index */ int delength; /* dels 及贏今毛澀爛允月(劑仄反簧蘸失永皿及啃 */ int i=0,j;/* i 反 src 毛伙□皿允月 醒 j 反 dels 毛伙□皿允月 醒 */ delength= strlen( dels ); while( src[i] != '\0' ){ for( j = 0 ; j < delength ; j ++ ){ if( src[i] == dels[j] ) /* * 綽輪允月 儂分[方勻化 i 卞 1 毛兇允 */ goto incrementi; } /* * 壅允 卞隙爛今木化中卅中及匹戊疋□允月[ */ src[index++] = src[i]; incrementi: i++; } src[index] = '\0';}/*------------------------------------------------------------ * 隙爛今木兇 儂毛隙爛今木兇 儂匹 五井尹月 * 婁醒 * src char* 凳今木月 儂 * oldc char 凳今木月 儂 * newc char 凳允月 儂 * 忒曰襖 * src ------------------------------------------------------------*/char* replaceString( char* src, char oldc ,char newc ){ char* cp=src; do{ if( *cp == oldc ) *cp=newc; }while( *cp++ ); return src;}typedef struct tagEscapeChar{ char escapechar; char escapedchar;}EscapeChar;static EscapeChar escapeChar[]={ { '\n', 'n' }, { ',', 'c' }, { '|', 'z' }, { '\\', 'y' },};char makeCharFromEscaped( char c )//add this function,because the second had it{ int i; for( i = 0; i < sizeof( escapeChar )/sizeof( escapeChar[0] ); i++ ) { if( escapeChar[i].escapedchar == c ) { c = escapeChar[i].escapechar; break; } } return c;}/*---------------------------------------- * makeEscapeString匹綜岳今木兇 儂 毛葭卞 允 * 婁醒 * src char* 葭卞卅月 儂 [仇木互踏五贅月[ * 忒曰襖 * src 毛忒允[(楮醒毛 木仇卞仄支允中方丹卞) ----------------------------------------*/char *makeStringFromEscaped( char* src ){//ttom this function all change,beside copy from the second int i; // CoolFish: Fix bug 2001/10/13 // int srclen = strlen( src ); int srclen = 0; int searchindex=0; // CoolFish: Fix bug 2001/10/13 if (!src) return NULL; srclen = strlen(src); for( i = 0; i < srclen; i ++ ) { // for 2Byte Word if( IS_2BYTEWORD( src[i] ) ){ src[searchindex++] = src[i++]; src[searchindex++] = src[i]; }else if( src[i] == '\\' ) { // 戚及 儂卞墊仁 i++; src[searchindex++] = makeCharFromEscaped( src[i] ); } else { src[searchindex++] = src[i]; } } src[searchindex] = '\0'; return src;}char* makeEscapeString( char* src , char* dest, int sizeofdest)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -