13,825
社区成员
发帖
与我相关
我的任务
分享
char input[]="||||白天是我睡|李荣|要不然早上";
char buf[200];
char *ptemp=input;
MySubString(ptemp,buf)
if(*ptemp == '|')
ptemp++;
//问题是在MySubString里已经对ptemp++了,为什么这里的ptemp 开始位置还是input的起始位置就是“|”的位置
MySubString(ptemp,buf)
{
for(int i = 0; i < strlen(Dest); i++)
{
if(*Dest == c)
Dest++;
else
break;
}
}
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <stdio.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
bool MySubString(char *Dest,char *Src)
{
int icount = 0;
//const char *ptemp = Dest;
char c = '|';
//memset(Src,0x00,strlen(Src));
if(Dest==NULL) return false;
while(*Dest) //改了这里
{
if(*Dest == c)
Dest++;
else
break;
}
icount = sscanf(Dest,"%[^|]",Src);
if(icount == 0) return false;
return true;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char input[50]="|||白天是我睡|asddddddddd";
char buf[50];
char *ptemp;
ptemp = input;
char c='|';
memcpy(&buf,input,50);
while(ptemp != NULL)
{
if(MySubString(ptemp,buf)== true)
{
// printf("%s\n",buf);
ShowMessage(buf);
memset(buf,0x00,20);
if(*ptemp == '|')
++ptemp;
ptemp=strchr(ptemp,c);
}
else
break;
}
}
#include "stdafx.h"
#include <map>
#include <string>
#include <iostream>
using namespace std;
bool MySubString(char *Dest,char *Src);
int main(int argc, char* argv[])
{
char input[50]="|||白天是我睡|asddddddddd";
char buf[50];
char *ptemp;
ptemp = input;
char c='|';
memcpy(&buf,input,50);
while(ptemp != NULL)
{
if(MySubString(ptemp,buf)== true)
{
printf("%s\n",buf);
memset(buf,0x00,20);
if(*ptemp == '|')
++ptemp;
ptemp=strchr(ptemp,c);
}
else
break;
}
return 0;
}
bool MySubString(char *Dest,char *Src)
{
int icount = 0;
//const char *ptemp = Dest;
char c = '|';
//memset(Src,0x00,strlen(Src));
if(Dest==NULL) return false;
for(int i = 0; i < strlen(Dest); i++)
{
if(*Dest == c)
Dest++;
else
break;
}
icount = sscanf(Dest,"%[^|]",Src);
if(icount == 0) return false;
return true;
}