bool getdatabytags(const char * data, char * buf,
const char * tagleft, const char * tagright)
{
assert(data != NULL && buf != NULL);
assert(tagleft != NULL && tagright != NULL);
if (strcmp(tagleft, "") == 0) return false;
if (strcmp(tagright, "") == 0) return false;
char * templeft = strstr(data, tagleft);
if ( templeft != NULL)
{
char * tempright = strstr(templeft, tagright);
if ( tempright != NULL)
{
templeft += strlen(tagleft);
strncpy(buf, templeft, (size_t) (tempright - templeft) );
return true;
}
}
return false;
}
void testgettag()
{
const char * res = "abcde<
>";
char des[32] = { '\0' };
if (getdatabytags(res, des, "<<", ">>"))
{
cout << des << endl;
}
}
( ztwaker 发表于 2006-2-15 11:11:00)
不用字符串类,如何实现? ( zhangguijun999 发表于 2003-11-2 19:56:00)
有呀,看:
CString ts="abcde<>";
ts.mid(8,3);
还有更简单的:
CString ts="we5";
这个问题本来描述的就不明确呀.
( minicat2000 发表于 2003-8-29 10:44:00)
有没有比我更简洁的?
CString string = "abcde<>";
string = string.Mid(string.ReverseFind('<')+1);
string = string.Left(string.Find(">")); ( nighting 发表于 2003-8-14 14:26:00)
如何将cstring的内容转化为float类型呢??????
( sauel 发表于 2003-8-13 12:04:00)
int GetSubString(char * lpSrc, char * lpDest)
{
char *lpPointS=NULL;
char *lpPointD=NULL;
BOOL flage=TRUE;
if(!(lpSrc && lpDest && DestLength))
return -1;
lpPointS=lpSrc;
lpPointD=lpDest;
while(*lpPointS)
{
if(flage)
{
if(*lpPointS++ !='<')
continue;
if(*lpPointS++ == '<')
flage=FALSE;
}
else
{
if(*lpPointS !='>' || *(lpPointS+1)!='>')
*lpPointD++=*lpPointS++
else
{
*lpPointD++=0;
flage=TRUE;
}
}
return lpPointD-lpDest;
}
( woffish 发表于 2003-3-28 21:10:00)
流川,写的不错 ( 星浪宇 发表于 2003-3-21 18:32:00)
无论好坏,人家的要求只有这么简单。
中国的程序员总觉得写的特别怪异才好
( 星浪宇 发表于 2003-3-21 18:31:00)
流川,写的不错 ( 星浪宇 发表于 2003-3-21 18:31:00)
真的 不是很高明。
不能称其为算法。
仅仅是一个问题的解法而已。
作者用了大工具CString 解决了 可取 但不提倡。 ( zhaoas 发表于 2002-12-10 17:54:00)
.......................................................
--------------------next---------------------
阅读(244) | 评论(0) | 转发(0) |