查看完整版本: C菜鸟问题

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]
页: [1]
查看完整版本: C菜鸟问题