给定起始和结束索引,如何在C中复制字符串的一部分?

时间:2011-06-01 17:21:58

标签: c string substring

在C中,如何复制带有开始和结束索引的字符串,以便只对字符串进行部分复制(从开始索引到结束索引)?

这就像'C string copy'strcpy,但有一个开头和一个结束索引。

3 个答案:

答案 0 :(得分:51)

使用strncpy

e.g。

strncpy(dest, src + beginIndex, endIndex - beginIndex);

这假定你

  1. 验证dest足够大。
  2. endIndex大于beginIndex
  3. beginIndex小于strlen(src)
  4. endIndex小于strlen(src)

答案 1 :(得分:16)

您检查过strncpy吗?

  

char * strncpy(char * destination,const char * source,size_t num);

您必须意识到开始结束实际上定义了一个 num 字节要从一个地方复制到另一个地方。

答案 2 :(得分:6)

只需使用memcpy即可。

如果目的地不够大,strncpy将不会终止。如果目标与源相比很大,strncpy只是在字符串后用空值填充目标。 strncpy毫无意义,不适合复制字符串。

strncpymemcpy类似,只是一旦在源中看到一个,就会使用空值填充目标。它对于字符串操作绝对没用。这是用0填充记录修复的。