linux c ÕýÔò±í´ïʽ
×î½üÓÐÕâô¸öÐèÇó,
c¸ã¸ãÕýÔò,
±Ï¾¹Regular Expression soÇ¿´ó^_^
±ê×¼µÄCºÍC+
+
¶¼²»Ö§³ÖÕýÔò±í´ïʽ£¬µ«ÓÐһЩº¯Êý¿â¿ÉÒÔ¸¨ÖúC/
C+
+
³ÌÐòÔ±Íê³ÉÕâÒ»¹¦ÄÜ£¬ÆäÖÐ×îÖøÃûµÄµ±ÊýPhilip HazelµÄPerl-
Compatible Regular Expression¿â£¬Ðí¶àLinux·¢Ðа汾¶¼´øÓÐÕâ¸öº¯Êý¿â¡£
±àÒëÕýÔò±í´ïʽ
ΪÁËÌá¸ßЧÂÊ£¬ÔÚ½«Ò»¸ö×Ö·û´®ÓëÕýÔò±í´ïʽ½øÐбȽÏ֮ǰ£¬Ê×ÏÈÒªÓÃregcomp(
)
º¯Êý¶ÔËü½øÐбàÒ룬½«Æäת»¯Îªregex_t½á¹¹£º
int
regcomp(
regex_t *
preg,
const
char
*
regex,
int
cflags)
;
²ÎÊýregexÊÇÒ»¸ö×Ö·û´®£¬Ëü´ú±í½«Òª±»±àÒëµÄÕýÔò±í´ïʽ£»²ÎÊýpregÖ¸ÏòÒ»¸öÉùÃ÷Ϊregex_tµÄÊý¾Ý½á¹¹£¬ÓÃÀ´±£´æ±àÒë½á¹û£»²ÎÊýcflags¾ö¶¨ÁËÕýÔò±í´ïʽ¸ÃÈçºÎ±»´¦ÀíµÄϸ½Ú¡£
Èç¹ûº¯Êýregcomp(
)
Ö´Ðгɹ¦£¬²¢ÇÒ±àÒë½á¹û±»ÕýÈ·Ìî³äµ½pregÖк󣬺¯Êý½«·µ»Ø0£¬ÈÎºÎÆäËüµÄ·µ»Ø½á¹û¶¼´ú±íÓÐijÖÖ´íÎó²úÉú¡£
Æ¥ÅäÕýÔò±í´ïʽ
Ò»µ©ÓÃregcomp(
)
º¯Êý³É¹¦µØ±àÒëÁËÕýÔò±í´ïʽ£¬½ÓÏÂÀ´¾Í¿ÉÒÔµ÷ÓÃregexec(
)
º¯ÊýÍê³ÉģʽƥÅ䣺
int
regexec(
const
regex_t *
preg,
const
char
*
string
,
size_t
nmatch,
regmatch_t pmatch[
]
,
int
eflags)
;
typedef
struct
{
regoff_t rm_so;
regoff_t rm_eo;
}
regmatch_t;
²ÎÊýpregÖ¸Ïò±àÒëºóµÄÕýÔò±í´ïʽ£¬²ÎÊýstringÊǽ«Òª½øÐÐÆ¥ÅäµÄ×Ö·û´®£¬¶ø²ÎÊýnmatchºÍpmatchÔòÓÃÓÚ°ÑÆ¥Åä½á¹û·µ»Ø¸øµ÷ÓóÌÐò£¬×îºóÒ»¸ö²ÎÊýeflags¾ö¶¨ÁËÆ¥ÅäµÄϸ½Ú¡£
ÔÚµ÷Óú¯Êýregexec(
)
½øÐÐģʽƥÅäµÄ¹ý³ÌÖУ¬¿ÉÄÜÔÚ×Ö·û´®stringÖлáÓжദÓë¸ø¶¨µÄÕýÔò±í´ïʽÏàÆ¥Å䣬²ÎÊýpmatch¾ÍÊÇÓÃÀ´±£´æÕâЩƥÅäλÖõ쬶ø²ÎÊýnmatchÔò¸æËߺ¯Êýregexec(
)
×î¶à¿ÉÒ԰ѶàÉÙ¸öÆ¥Åä½á¹ûÌî³äµ½pmatchÊý×éÖС£µ±regexec(
)
º¯Êý³É¹¦·µ»ØÊ±£¬´Ó string
+
pmatch[
0]
.
rm_soµ½string+
pmatch[
0]
.
rm_eoÊǵÚÒ»¸öÆ¥ÅäµÄ×Ö·û´®£¬¶ø´Ó string
+
pmatch[
1]
.
rm_soµ½string+
pmatch[
1]
.
rm_eo£¬ÔòÊǵڶþ¸öÆ¥ÅäµÄ×Ö·û´®£¬ÒÀ´ËÀàÍÆ¡£
ÊÍ·ÅÕýÔò±í´ïʽ
ÎÞÂÛʲôʱºò£¬µ±²»ÔÙÐèÒªÒѾ±àÒë¹ýµÄÕýÔò±í´ïʽʱ£¬¶¼Ó¦¸Ãµ÷Óú¯Êýregfree(
)
½«ÆäÊÍ·Å£¬ÒÔÃâ²úÉúÄÚ´æÐ¹Â©¡£
void
regfree(
regex_t *
preg)
;
º¯Êýregfree(
)
²»»á·µ»ØÈκνá¹û£¬Ëü½ö½ÓÊÕÒ»¸öÖ¸Ïòregex_tÊý¾ÝÀàÐ͵ÄÖ¸Õ룬ÕâÊÇ֮ǰµ÷ÓÃregcomp(
)
º¯ÊýËùµÃµ½µÄ±àÒë½á¹û¡
Ïà¹ØÎĵµ£º
MS C¡¢STL¡¢MFC¶ÔWindows Mobile¿ª·¢µÄÖ§³Ö
ËùÓÐ×ÊÁÏÀ´×ÔMSDN
--------------------------------------------------------------------------------
1.MobileÖ§³ÖµÄMicrosoft C
wcsncpy_s
wcscpy_s
wcscat_s
strncpy_s
strcpy_s
strcat_s
memmove_s
memcpy_s
_wsplitpath_s
_wmak ......
C¼°´«Í³C++
#include <assert.h>¡¡¡¡¡¡¡¡//É趨²åÈëµã
#include <ctype.h>¡¡¡¡¡¡¡¡ //×Ö·û´¦Àí
#include <errno.h>¡¡¡¡¡¡¡¡ //¶¨Òå´íÎóÂë
#include <float.h>¡¡¡¡¡¡¡¡ //¸¡µãÊý´¦Àí
#include <fstream.h>¡¡¡¡¡¡ //ÎļþÊäÈ룯Êä³ö
#include <iomanip.h>¡¡¡¡¡¡ //²ÎÊý»¯ÊäÈ룯Êä³ö ......
Ò»¡¢º¯Êýµ÷ÓõĻù±¾²½Öè
º¯Êýµ÷ÓôóÖ°üÀ¨ÒÔϼ¸¸ö²½Öè¡£
£¨1£©²ÎÊýÈëÕ»£º½«²ÎÊý´ÓÓÒÏò×óÒÀ´ÎѹÈëϵͳջÖС£
£¨2£©·µ»ØµØÖ·ÈëÕ»£º½«µ±Ç°´úÂëÇøµ÷ÓÃÖ¸ÁîµÄÏÂÒ»ÌõÖ¸ÁîµØÖ·Ñ¹ÈëÕ»ÖУ¬¹©º¯Êý·µ»ØÊ±¼ÌÐøÖ´ÐС£
£¨3£©´úÂëÇøÌø×ª£º´¦ÀíÆ÷´Óµ±Ç°´úÂëÇøÌø×ªµ½±»µ÷Óú¯ÊýµÄÈë¿Ú´¦¡£
£¨4£©Õ»Ö¡µ÷Õû£º¾ßÌå°üÀ¨£º
±£´æµ±Ç°Õ»Ö¡×´Ì¬ ......
µÚһƪÎÄÕÂÖÕÓÚÂä±ÊÁË£¬±¾ÎĽ«´Ó˼¿¼µÄ½Ç¶ÈÈ¥ÖØÐÂÈÏʶһÏÂHelloworld¡£ÔÚÀý×ÓÖ®ºó»áÌá³ö²»Í¬µÄÎÊÌ⣬Òýµ¼´ó¼Òȥ˼¿¼Ã¿Ò»¾äÄËÖÁÿ¸öϸ½Ú¡£Í¬Ê±Ï£ÍûÄܹ»Èôó¼ÒÒÔºóÄܹ»ÒÔ²»¶Ï˼¿¼²»¶ÏÌáÎʵķ½Ê½È¥¿´´ý×Ô¼ºµÄ³ÌÐò¡£ÎÒÏàÐÅ´ó¼Ò»á·¢ÏֺܶàÐµĶ«Î÷£¬ºÃÁËÇÐÈëÕýÌâ¡£
ÎÒÃÇÿѧһÖÖеÄÓïÑÔ»ù±¾¶¼»á´Óhelloworld¿ªÊ¼£¬»ù±¾Ã¿ÖÖÓïÑÔ ......