我想取一串字符的中间,根据前后特征字,比如一个char = [~1]dddd[~2]
怎么取到dddd
怎么取到dddd
解决方案 »
- Visual Studio 2008下,如何创建WinSDK工程?
- 一个提交数据包,再接收该数据包并解析其中的数据的问题,急,恳请各位大哥大姐帮忙!!
- 串口通信问题,VC中如何用一个按钮实现多个数组的发送
- 为什么编译时提示:'_ConnectionPtr' : undeclared identifier
- 我用atl制作的activex控件为什么注册不上?
- 关于异步的wsprecv的问题
- 写程序到这里.遇到了麻烦!
- 如何向一个WORD文档发送一个粘贴的信息
- ClientToScreen和ScreenToClient有何用处,请各位高手详细解释一下啊~~
- 右键弹出菜单怎么实现
- 高手指教,组合矢量图形的缩放原理
- 关于send函数和sendto函数的char *参数
用法:#include <string.h> (经过多次试验,这个头文件也可以不包含,并不影响该函数的使用。既然MSDN上要求, 可以不妨带上)
功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。
说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。
楼主是要找两个特征字之间的字符的,[~1]dddd[~2]
如果是这样呢char * = "dddddddddddddddddddddddddddd[~1]dddd[~2] dddddddd";
这样就不能定位出[~1]和[~2]之间的dddd了
int pos1 = source.find("[~1]")+4;
int pos2 = source.find("[~2]");
CString result = source.Mid(pos1,pos2-pos1);
如果不用CString,而是char*
那对应的方法是:
find -- strstr
mid -- strncpy
char *pdest;
int pos1 = strstr( source , "[~1]") - source + 4 ;
int pos2 = strstr( source , "[~2]") - source ;
int length = pos2 - pos1;
char result[100];
strncpy(result,source+pos1,length);
result[length]='\0';