假设你有一个字符串:
std::string s = "ABCD\t1234";
我可以std::string::find
用来获取 '\t' 字符的偏移量,但据我所知,没有具有以下签名的函数:
int atoi_n(char *, int len);
我错过了什么?strtok
替换为\t
,\0
我不想触摸原始缓冲区。我很难相信没有带长度参数的 , 等实例atoi
,atof
但我找不到任何东西。
有人知道我是否缺少某些东西吗?我知道 boost 有一些标记器,但我想避免添加 boost 的依赖项。
到目前为止,我想澄清一下评论。让我们换个场景:char buffer[1024]; 字符 *pStartPos; 字符 *pEndPost; pStartPos = 缓冲区 + 5; pEndPos = 缓冲区 + 10;
假设您不能对 pStartPos 和 pEndPos 之外的内存做出任何假设。如何将 pStartPos 和 pEndPos 之间的字符转换为 int 而不添加 '\0' 到缓冲区或使用 substr 复制?