我有串char * buff
,并希望其susbtring工作(从buff + x
直到buff + y
。 我必须复制此蜇到其他变量?还是仅仅是有没有更好的办法去实现它? 现在我希望这个子写入文件与子工作
Q
与子工作
0
A
回答
3
没有,只是做了直接写,就像你希望:
fwrite(buff + x, y - x + 1, 1, my_file);
以上的方式呈现闭区间,如果你说的是半开的,你需要删除+ 1
。例如,用const char *buff = "hello, world";
以上将写"world"
如果x = 7
和y = 12
。
写入操作将从缓冲区的“切片”完成,因为这就是对fwrite()
所说的全部内容。它不知道它收到的数据当然是更大的一部分。
作为注释中的指针,上面将切片视为二进制数据,如果它真的是一个字符串,那么它可能是不好的。在那种情况下,为了能够使用例如fprintf()
与%s
,你应该使用动态格式字符串(你需要%.Ns
其中N为y - x + 1
):
static int substring_print(const char *s, size_t start, size_t end)
{
char fmt[16];
snprintf(fmt, sizeof fmt, "%%.%us", end - start + 1);
fprintf(stdout, fmt, s + start);
}
+0
当然,这假设二进制输出是足够好的(不需要换行符解释)。 –
相关问题
- 1. 与SELECT子句不工作
- 2. 原子能与Python工作virtualenvwrapper
- 3. LEFT JOIN与where子句不工作
- 4. cronjob与电子邮件不工作
- 5. 重写.htaccess代码工作与子域
- 6. make date_create()与DateTime子类一起工作
- 7. 离子3 Plunker与SCSS不工作
- 8. 与WHERE子句中不工作
- 9. 创建用户与离子不工作
- 10. SQLite与where子句不工作
- 11. 离子2与strophe不工作?
- 12. 与离子本地3.X不工作
- 13. firebase登录与离子不工作
- 14. htaccess的与子目录不工作
- 15. INNER JOIN与WHERE子句中不工作
- 16. 与罐子火花工作流程
- 17. 与工作表工作
- 18. Oozie:子工作流操作:如何检索子工作流ID?
- 19. UI-SREF不与子状态的工作从离子态
- 20. 离子链接并不与离子V2工作
- 21. Jsoup选择与组合子直系子孙(>)不工作
- 22. 计数与SQL子查询中从子句不工作
- 23. iOS:如何使工厂方法与子类化工作
- 24. 工作差[{}]与
- 25. 与不工作
- 26. 与bc工作
- 27. 工作与JavaScript
- 28. 与不工作
- 29. 与不工作
- 30. 与位工作
这取决于什么“工作”的手段,并在那里将afterthat使用。如果您只是阅读它,则无需复制。 – Deck
我想写这个子字符串到一个文件。 – MaMu
如果使用'fwrite'编写足够好,那么它是可行的。否则,您可能需要复制(或暂时将'buff [y]'设置为NUL)。 –