blueeaglely 2008-10-6 00:33
C菜鸟问题
刚接触C,什么都不懂,一头雾水。C语言里有取值的函数么,就是给定一个数字或者字符串,取出第几位到第几位,翻了翻附录,好像没找到。
恭请达人:laugh:
真木 2008-10-6 15:12
网上找了一个
/* 取子串的函数 */
static char* substr(const char*str, unsigned start, unsigned end)
{
unsigned n = end - start;
static char stbuf[256];
strncpy(stbuf, str + start, n);
stbuf[n] = 0;
return stbuf;
}
当心上面的缓冲区溢出
因为只有256个byte
淡然地 2008-10-6 20:06
[code]char * SubStr(const char* Source, int Index, int Len)
{
int OldLen = strlen(Source);
if (Index + Len > OldLen)
Len = OldLen - Index;
if (Len > 0)
{
char * Result = (char*)malloc(Len + 1);
memcpy(Result, Source, Len);
Result[Len] = '\0';
return Result;
}
else
return NULL;
} [/code]
taro 2008-10-7 09:53
用malloc要记得free哦
[code]
// e.g
char str[] = "abcdefgh";
char * sub = SubStr(str, 2, 4);
// do something with sub
// ...
// don`t forget to free sub
free(sub);
[/code]