锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
璋冪敤鏍煎紡錛歳esult = strpbrk(source-string, searching-string)
鐢ㄩ旓細鍦ㄦ簮瀛楃涓?source-string錛変腑鎵懼嚭鏈鍏堝惈鏈夋悳绱㈠瓧絎︿覆錛坰earching-string)涓殑浠諱竴瀛楃鐨勪綅緗茍榪斿洖錛岃嫢鎵句笉鍒板垯榪斿洖絀烘寚閽堛?
娉ㄦ剰錛氳繑鍥炲兼槸鎸囧悜婧愬瓧絎︿覆鐨勬寚閽堬紝鎵浠ュ湪浣跨敤榪斿洖緇撴灉鐨勬椂鍊欙紝璇風‘淇濇簮瀛楃涓茬殑鏈夋晥鎬с?
涓綧SDN涓殑渚嬪瓙錛?
鏁版嵁錛?
char string[100] = "The 3 men and 2 boys ate 5 pigs\n";
char *result;
璋冪敤錛?
result = strpbrk( string, "0123456789" );//鍦╯tring涓壘鍑烘渶鍏堝嚭鐜?~9涓煇涓涓瓧絎︾殑浣嶇疆
printf( "1: %s\n", result++ );
result = strpbrk( result, "0123456789" );
printf( "2: %s\n", result++ );
result = strpbrk( result, "0123456789" );
printf( "3: %s\n", result );
杈撳嚭鐨勭粨鏋滄槸錛?
1. 3 men and 2 boys ate 5 pigs//鏈鍏堝彂鐜?
2: 2 boys ate 5 pigs//鏈鍏堝彂鐜?錛屾敞鎰忚繖鏃跺紑濮嬫簮涓叉槸涓婁竴嬈$殑緇撴灉鐨勪笅涓浣嶇疆錛屽嵆璺寵繃浜嗘暟瀛?3'錛屼笅鍚?
3: 5 pigs//鏈鍏堝彂鐜?
錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛?
浜屻乻trtok錛?
鐢ㄦ硶錛歵oken = strtok(source-str,seperator-str)
鐢ㄩ旓細鍦╯ource-str涓壘鍑轟互seperator-str涓殑瀛楃涓哄垎闅旂殑瀛楃涓詫紝鍗蟲槸婧愪覆涓櫎鍘諱簡鍚湁鍒嗛殧涓蹭腑鐨勬墍鏈夊瓧絎﹀悗浣欎笅鐨勪竴孌墊鐨勫瓧絎︿覆錛屾瘡璋冪敤涓嬈℃壘鍒頒竴涓詫紝鎵句笉鍒板垯榪斿洖絀轟覆銆?
娉ㄦ剰錛氳繑鍥炲兼槸鎸囧悜婧愪覆鐨勬寚閽堬紝鎵浠ュ悓鏍瘋淇濊瘉婧愪覆鐨勬湁鏁堟э紝姝ゅ錛屾瘡嬈¤皟鐢ㄨ繑鍥炴壘鍒扮殑瀛愪覆鐨勬椂鍊欓兘浼氭妸婧愪覆涓瀛愪覆鐨勫熬閮ㄥ瓧絎︼紙鍘熸潵鏄悳绱覆涓殑鏌愪竴瀛楃錛変慨鏀規垚'\0'瀛楃銆傝繕鏈変竴涓娉ㄦ剰鐨勬槸錛岃繖涓嚱鏁頒嬌鐢ㄥ叏灞鐨勯潤鎬佺紦鍐插尯錛堝嚱鏁拌嚜宸辯殑闈欐乥uffer)錛屾墍浠ュ湪鏌愪竴涓嚎紼嬮噷涓嶈鍚屾椂璋冪敤榪欎釜鍑芥暟鏉ュ鐞嗕袱涓瓧絎︿覆錛屽惁鍒欐瀬鏄撳嚭鐜頒笉姝e父鐨勭粨鏋滐紝姝g‘鐨勫鐞嗘柟娉曟槸鍏堟壘鍑轟竴涓瓧絎︿覆涓殑鎵鏈夊瓙涓詫紝鐒跺悗鎵嶈漿鍒板鐞嗗彟涓涓瓧絎︿覆銆傚綰跨▼涔嬮棿鍒欎笉浼氬嚭鐜拌繖縐嶅共鎵般?
鍚屾牱涓綧SDN涓殑渚嬪瓙錛?
鏁版嵁鍑嗗錛?
char string[] = "A string\tof ,,tokens\nand some more tokens";
char seps[] = " ,\t\n";
char *token;
璋冪敤紺轟緥錛?
token = strtok( string, seps );
while( token != NULL )
{
/* While there are tokens in "string" */
printf( " %s\n", token );
/* Get next token: */
token = strtok( NULL, seps );
/*娉ㄦ剰鍒頒笂闈㈣繖涓狽ULL錛屽畠琛ㄦ槑鐨勬槸浠庝笂嬈¤皟鐢ㄧ粨鏋滀腑strtok鑷湁鐨勭紦鍐插尯涓戶緇彇鍑轟綑涓嬬殑瀛愪覆*/
}
鏄劇ず緇撴灉錛?
A //姝ゆ椂string[1]='\0'錛屽師鍏堜負絀烘牸
string
of
tokens
and
some
more
tokens
]]>
sscanf() - 浠庝竴涓瓧絎︿覆涓榪涗笌鎸囧畾鏍煎紡鐩哥鐨勬暟鎹?
鍑芥暟鍘熷瀷:
Int sscanf( string str, string fmt, mixed var1, mixed var2 ... );
int scanf( const char *format [,argument]... );
璇存槑錛?/strong>
sscanf涓巗canf綾諱技錛岄兘鏄敤浜庤緭鍏ョ殑錛屽彧鏄悗鑰呬互灞忓箷(stdin)涓鴻緭鍏ユ簮錛屽墠鑰呬互鍥哄畾瀛楃涓蹭負杈撳叆婧愩?br>鍏朵腑鐨刦ormat鍙互鏄竴涓垨澶氫釜 {%[*] [width] [{h | l | I64 | L}]type | ' ' | '\t' | '\n' | 闈?絎﹀彿}
娉細
1銆?* 浜﹀彲鐢ㄤ簬鏍煎紡涓? (鍗?%*d 鍜?%*s) 鍔犱簡鏄熷彿 (*) 琛ㄧず璺寵繃姝ゆ暟鎹笉璇誨叆. (涔熷氨鏄笉鎶婃鏁版嵁璇誨叆鍙傛暟涓?
2銆亄a|b|c}琛ㄧずa,b,c涓変竴錛孾d],琛ㄧず鍙互鏈塪涔熷彲浠ユ病鏈塪銆?
3銆亀idth琛ㄧず璇誨彇瀹藉害銆?
4銆亄h | l | I64 | L}:鍙傛暟鐨剆ize,閫氬父h琛ㄧず鍗曞瓧鑺俿ize錛孖琛ㄧず2瀛楄妭 size,L琛ㄧず4瀛楄妭size(double渚嬪),l64琛ㄧず8瀛楄妭size銆?br>5銆乼ype :榪欏氨寰堝浜嗭紝灝辨槸%s,%d涔嬬被銆?
6銆佺壒鍒殑錛?*[width] [{h | l | I64 | L}]type 琛ㄧず婊¤凍璇ユ潯浠剁殑琚繃婊ゆ帀錛屼笉浼氬悜鐩爣鍙傛暟涓啓鍏ュ?br>
鏀寔闆嗗悎鎿嶄綔錛?/strong>
%[a-z] 琛ㄧず鍖歸厤a鍒皕涓換鎰忓瓧絎︼紝璐┆鎬?灝藉彲鑳藉鐨勫尮閰?
%[aB'] 鍖歸厤a銆丅銆?涓竴鍛橈紝璐┆鎬?br>
%[^a] 鍖歸厤闈瀉鐨勪換鎰忓瓧絎︼紝璐┆鎬?
sscanf("123456 ", "%s", buf);
printf("%s\n", buf);
緇撴灉涓猴細123456
2. 鍙栨寚瀹氶暱搴︾殑瀛楃涓層傚鍦ㄤ笅渚嬩腑錛屽彇鏈澶ч暱搴︿負4瀛楄妭鐨勫瓧絎︿覆銆?br> sscanf("123456 ", "%4s", buf);
printf("%s\n", buf);
緇撴灉涓猴細1234
3. 鍙栧埌鎸囧畾瀛楃涓烘鐨勫瓧絎︿覆銆傚鍦ㄤ笅渚嬩腑錛屽彇閬囧埌絀烘牸涓烘瀛楃涓層?br> sscanf("123456 abcdedf", "%[^ ]", buf);
printf("%s\n", buf);
緇撴灉涓猴細123456
4. 鍙栦粎鍖呭惈鎸囧畾瀛楃闆嗙殑瀛楃涓層傚鍦ㄤ笅渚嬩腑錛屽彇浠呭寘鍚?鍒?鍜屽皬鍐欏瓧姣嶇殑瀛楃涓層?br> sscanf("123456abcdedfBCDEF", "%[1-9a-z]", buf);
printf("%s\n", buf);
緇撴灉涓猴細123456abcdedf
5. 鍙栧埌鎸囧畾瀛楃闆嗕負姝㈢殑瀛楃涓層傚鍦ㄤ笅渚嬩腑錛屽彇閬囧埌澶у啓瀛楁瘝涓烘鐨勫瓧絎︿覆銆?br> sscanf("123456abcdedfBCDEF", "%[^A-Z]", buf);
printf("%s\n", buf);
緇撴灉涓猴細123456abcdedf
6銆佺粰瀹氫竴涓瓧絎︿覆iios/12DDWDFF@122錛岃幏鍙?/ 鍜?@ 涔嬮棿鐨勫瓧絎︿覆錛屽厛灝?"iios/"榪囨護鎺夛紝鍐嶅皢闈?@'鐨勪竴涓插唴瀹歸佸埌buf涓?br>sscanf("iios/12DDWDFF@122", "%*[^/]/%[^@]", buf);
printf("%s\n", buf);
緇撴灉涓猴細12DDWDFF
7銆佺粰瀹氫竴涓瓧絎︿覆““hello, world”錛屼粎淇濈暀world銆傦紙娉ㄦ剰錛?#8220;錛?#8221;涔嬪悗鏈変竴絀烘牸錛?br>sscanf(“hello, world”, "%*s%s", buf);
printf("%s\n", buf);
緇撴灉涓猴細world
%*s琛ㄧず絎竴涓尮閰嶅埌鐨?s琚繃婊ゆ帀錛屽嵆hello琚繃婊や簡
濡傛灉娌℃湁絀烘牸鍒欑粨鏋滀負NULL銆?br>
sscanf鐨勫姛鑳藉緢綾諱技浜庢鍒欒〃杈懼紡, 浣嗗嵈娌℃湁姝e垯琛ㄨ揪寮忓己澶?鎵浠ュ鏋滃浜庢瘮杈冨鏉傜殑瀛楃涓插鐞?寤鴻浣跨敤姝e垯琛ㄨ揪寮?
//-------------------------------------------------------
sscanf,琛ㄧず浠庡瓧絎︿覆涓牸寮忓寲杈撳叆
涓婇潰琛ㄧず浠巗tr涓紝杈撳叆鏁板瓧緇檟錛屽氨鏄?2700
涔呬互鍓嶏紝鎴戜互涓篶娌℃湁鑷繁鐨剆plit string鍑芥暟錛屽悗鏉ユ垜鍙戠幇浜唖scanf錛涗竴鐩翠互鏉ワ紝鎴戜互涓簊scanf鍙兘浠ョ┖鏍兼潵鐣屽畾瀛楃涓詫紝鐜板湪鎴戝彂鐜版垜閿欎簡銆?
sscanf鏄竴涓繍琛屾椂鍑芥暟錛屽師褰㈠緢綆鍗曪細
int sscanf(
const char *buffer,
const char *format [,
argument ] ...
);
瀹冨己澶х殑鍔熻兘浣撶幇鍦ㄥformat鐨勬敮鎸佷笂銆?
鎴戜互鍓嶇敤瀹冩潵鍒嗛殧綾諱技榪欐牱鐨勫瓧絎︿覆2006:03:18:
int a, b, c;
sscanf("2006:03:18", "%d:%d:%d", a, b, c);
浠ュ強2006:03:18 - 2006:04:18:
char sztime1[16] = "", sztime2[16] = "";
sscanf("2006:03:18 - 2006:04:18", "%s - %s", sztime1, sztime2);
浣嗘槸鍚庢潵錛屾垜闇瑕佸鐞?006:03:18-2006:04:18
浠呬粎鏄彇娑堜簡‘-’涓よ竟鐨勭┖鏍鹼紝鍗存墦鐮翠簡%s瀵瑰瓧絎︿覆鐨勭晫瀹氥?
鎴戦渶瑕侀噸鏂拌璁′竴涓嚱鏁版潵澶勭悊榪欐牱鐨勬儏鍐碉紵榪欏茍涓嶅鏉傦紝浣嗘槸錛屼負浜嗕嬌鎵鏈夌殑浠g爜閮芥湁緇熶竴鐨勯鏍鹼紝鎴戦渶瑕佹敼鍔ㄥ緢澶氬湴鏂癸紝鎶婂凡鏈夌殑sscanf鏇挎崲鎴愭垜鑷繁鐨勫垎鍓插嚱鏁般傛垜浠ヤ負鎴戣偗瀹氶渶瑕佽繖鏍峰仛錛屽茍浼撮殢鐫瀵箂scanf鐨勫己鐑堜笉婊¤屽叆鐫★紱涓瑙夐啋鏉ワ紝鍙戠幇鍏跺疄涓嶅繀銆?
format-type涓湁%[]榪欐牱鐨則ype field銆傚鏋滆鍙栫殑瀛楃涓詫紝涓嶆槸浠ョ┖鏍兼潵鍒嗛殧鐨勮瘽錛屽氨鍙互浣跨敤%[]銆?
%[]綾諱技浜庝竴涓鍒欒〃杈懼紡銆俒a-z]琛ㄧず璇誨彇a-z鐨勬墍鏈夊瓧絎︼紝[^a-z]琛ㄧず璇誨彇闄-z浠ュ鐨勬墍鏈夊瓧絎︺?
鎵浠ラ偅涓棶棰樹篃灝辮繋鍒冭岃В浜?
sscanf("2006:03:18 - 2006:04:18", "%[0-9,:] - %[0-9,:]", sztime1, sztime2);
鍦╯oftmse (Jake) 鐨勯棶棰樿創http://community.csdn.net/Expert/topic/4843/4843294.xml?temp=. 4321558涓?錛屽懆鏄熸槦緇欏嚭浜嗕竴涓緢cool鐨剆scanf鐢ㄤ緥錛岃屽悗閫氳繃瀛︿範錛屽彂鐜皊scanf鐪熸錛岀幇鍋氫竴鎬葷粨銆?
鍘熼棶棰橈細
iios/12DDWDFF@122
鑾峰彇/鍜孈涔嬮棿鐨勫瓧絎︿覆鎬庝箞鍋?
C紼嬪簭閲岄潰鏈変粈涔堝嚱鏁板悧?
鍛ㄦ槦鏄熺殑浠g爜錛?
#include <stdio.h>
int main()
{
const char* s = "iios/12DDWDFF@122";
char buf[20];
sscanf( s, "%*[^/]/%[^@]", buf );
printf( "%s\n", buf );
return 0;
}
緇撴灉涓?12DDWDFF
sscanf涓巗canf綾諱技錛岄兘鏄敤浜庤緭鍏ョ殑錛屽彧鏄悗鑰呬互灞忓箷(stdin)涓鴻緭鍏ユ簮錛屽墠鑰呬互鍥哄畾瀛楃涓蹭負杈撳叆婧愩?
鍑芥暟鍘熷瀷錛?
int scanf( const char *format [,argument]... );
鍏朵腑鐨刦ormat鍙互鏄竴涓垨澶氫釜 {%[*] [width] [{h | l | I64 | L}]type | ' ' | '\t' | '\n' | 闈?絎﹀彿}錛?
娉細{a|b|c}琛ㄧずa,b,c涓変竴錛孾d],琛ㄧず鍙互鏈塪涔熷彲浠ユ病鏈塪銆?
width:瀹藉害錛屼竴鑸彲浠ュ拷鐣ワ紝鐢ㄦ硶濡傦細
const char sourceStr[] = "hello, world";
char buf[10] = ;
sscanf(sourceStr, "%5s", buf); //%5s錛屽彧鍙?涓瓧絎?
cout << buf<< endl;
緇撴灉涓?hello
{h | l | I64 | L}:鍙傛暟鐨剆ize,閫氬父h琛ㄧず鍗曞瓧鑺俿ize錛孖琛ㄧず2瀛楄妭 size,L琛ㄧず4瀛楄妭size(double渚嬪),l64琛ㄧず8瀛楄妭size銆?
type :榪欏氨寰堝浜嗭紝灝辨槸%s,%d涔嬬被銆?
鐗瑰埆鐨勶細
%*[width] [{h | l | I64 | L}]type 琛ㄧず婊¤凍璇ユ潯浠剁殑琚繃婊ゆ帀錛屼笉浼氬悜鐩爣鍙傛暟涓啓鍏ュ箋傚錛?
const char sourceStr[] = "hello, world";
char buf[10] = ;
sscanf(sourceStr, "%*s%s", buf); //%*s琛ㄧず絎竴涓尮閰嶅埌鐨?s琚繃婊ゆ帀錛屽嵆hello琚繃婊や簡
cout << buf<< endl;
緇撴灉涓?world
鏀寔闆嗗悎鎿嶄綔錛?
%[a-z] 琛ㄧず鍖歸厤a鍒皕涓換鎰忓瓧絎︼紝璐┆鎬?灝藉彲鑳藉鐨勫尮閰?
%[aB'] 鍖歸厤a銆丅銆?涓竴鍛橈紝璐┆鎬?
%[^a] 鍖歸厤闈瀉鐨勪換鎰忓瓧絎︼紝璐┆鎬?
鏄笉鏄劅瑙夌溂鐔熶簡鍟婏紝涓嶉敊錛岃繖鍜屾鍒欒〃杈懼紡寰堢浉浼鹼紝鑰屼笖浠嶇劧鏀寔榪囨護錛屽嵆鍙互鏈?*[a-z].濡傦細
鏄熸槦澶у摜渚嬪瓙鍥為【錛?
const char* s = "iios/12DDWDFF@122";
char buf[20];
sscanf( s, "%*[^/]/%[^@]", buf );
printf( "%s\n", buf );
鍏堝皢 "iios/"榪囨護鎺夛紝鍐嶅皢闈?a href="mailto:'@'">'@'鐨勪竴涓插唴瀹歸佸埌buf涓紝cool.寰楀埌緇撴灉銆?
]]>