使用子串

时间:2013-11-26 10:55:22

标签: c

我有字符串char * buff,想要处理其字符串(从buff + xbuff + y。 我是否必须将此sting复制到其他变量?或者有没有更好的方法来达到它? 现在我只想将这个子字符串写入文件。

1 个答案:

答案 0 :(得分:3)

不,只是按照你的意愿直接写:

fwrite(buff + x, y - x + 1, 1, my_file);

顺便说一句,上面假设是一个封闭的间隔,如果你的意思是半开,你需要删除+ 1。例如,对于const char *buff = "hello, world";,如果"world"x = 7,则上面会写y = 12

写入将从缓冲区的“切片”完成,因为您只需要对fwrite()说。当然,它不知道它收到的数据是更大的一部分。

作为注释中的指针,上面将切片视为二进制数据,如果它实际上是一个字符串,则可能是坏的。在那种情况下,能够使用例如使用fprintf()的{​​{1}},您应该使用动态格式字符串(您需要%s,其中N是%.Ns):

y - x + 1