定义为
char * getsubstr(const char *strSource, int begin, int lenth)
功能为在strSource中,从begin开始,获得长度为lenth的子串。以前有过这个函数,今天再编,却晕头转向,请大家帮帮忙,我卡在这里好长时间了。
char * getsubstr(const char *strSource, int begin, int lenth)
功能为在strSource中,从begin开始,获得长度为lenth的子串。以前有过这个函数,今天再编,却晕头转向,请大家帮帮忙,我卡在这里好长时间了。
for(int i=0;i<begin;i++)
{
p++;
}
char *newstr=new char[length];
for(i=0;i<length;i++)
{
*newstr++=*p++;
}
return newstr;
自己再改改吧~
不一定对的哦~
char * getsubstr(const char *strSource, int begin, int lenth)
{
char *p = new char[length + 1];
// in C: char *p = (char *)malloc(sizeof(char) * (length + 1));
strncpy(p, strSource + begin, length);
p[length] = 0;
return p;
}另一种方式是在函数中定义静态变量,但此变量必须定义得足够大才行。
char * getsubstr(const char *strSource, int begin, int lenth)
{
char sz[1024];
strncpy(sz, strSource + begin, length);
sz[length] = 0;
return sz;
}
而且返回值应立即拷贝到其它的内存地址,因为下次调用时该地址的值会发生变化.我觉得这个方法不错char * strntcpy(char *strDest, const char *strSource, int begin, int lenth)
{
strncpy(strDest, strSource + begin, length);
strDest[length] = 0;
return strDest;
}
sz的定义应为
static char sz[1024]