Abstract
這是一個實務上常用的功能,可惜在C語言的string.h並沒有提供,本文實作出一個小function達到此功能,並搭配pointer。
Introduction
在(筆記) 如何在字串中從指定字元抓到指定字元? (C/C++) (C),其實已經可以包含99%的需求,唯一的缺憾是,string.h的函數大都回傳的char *,若要更靈活的搭配string.h原本的函數,勢必提供pointer版的function。
第三與第四個參數,都改用char *‧
strchrp.c / C
1
/*
2
(C) OOMusou 2009
http://oomusou.cnblogs.com
3
4
Filename : strchrp.c
5
Compiler : Visual C++ 9.0
6
Description : Demo how to get string from specify char to char (pointer ver.)
7
Release : 04/26/2009 1.0
8
*/
9
10
#include
<
stdio.h
>
11
#include
<
string
.h
>
12
13
void
strchrp(
char
*
dest,
char
*
src,
char
*
begin,
char
*
end) {
14
int
len
=
strlen(begin)
-
strlen(end);
15
strncpy(dest, begin, len);
16
dest[len]
=
'
\0
'
;
17
}
18
19
int
main() {
20
char
src[]
=
"
[10,20]
"
;
21
char
dest[
20
];
22
23
strchrp(dest, src, strchr(src,
'
,
'
)
+
1
, strchr(src,
'
]
'
));
24
25
printf(
"
%s
"
, dest);
26
}
執行結果
20
Known Issue
目前這個版本,當begin與end為NULL時,會發生當機的狀況,還必須做更好的防呆機制‧