我在我的阵列中在哪里
Where am I in my array?
这是自动生成的C代码,所以请不要介意我通过字符指针滚动的方法
我正在使用字符指针来存储字符串:
char str[] = "Hello!";
char *ptr = str;
我使用指针算法来滚动它:
++ptr;
++ptr;
...
...
--ptr;
我想知道在某个时候它到底指向什么索引(例如,"Hello"中的"e"为 1)。我该怎么做?
适当地,std::distance(str, ptr)
或只是ptr - str
。
您可以简单地使用 printf 打印相应的值或使用 %c 打印 cout 即可获取指向的字符。
printf("%c",*p);
如果你想知道这个位置,那么
printf("%tdn",ptr-str);
只是做
printf("ndistance[%d]",ptr-str);
要回答您的问题,最简单的方法是使用 std::d istance。这将返回给定迭代器之间的元素数。在你的例子中,std::d istance(str, ptr) 返回 str 和 ptr 之间的元素数。假设 str 指向 start,ptr 位于"o"处,则此 API 返回的值为 4。
相关文章:
- C++我需要了解在哪里使用指针和双指针
- 未定义的引用在哪里
- 谷歌测试中的期望值存储在哪里
- 尽管遵循了规则,内存泄漏在哪里
- 静态数据成员模板专用化的实例化点在哪里
- 在哪里放置我的函数?进入我的母语 Gui 还是进入我的演示者?
- 在哪里声明结构运算符重载
- 仅在大型阵列上出现合并排序分段错误
- C++ 中的自定义异常:在哪里定义它们?
- 常量参数存储在哪里 (C++)?
- 如何在 c++ 中确定一条指令(以字节为单位)在哪里结束,另一条指令从哪里开始?
- 此递归函数的每次迭代的值存储在哪里?
- 如何告诉本机节点模块所需的dll存储在哪里?
- 在哪里存储跨平台C++应用存储?
- C++泛型类错误,问题出在哪里?
- 在标准中,模板参数的语法在哪里定义,例如,'std::function<int(char)>'?
- 将类作为主要参数的语法在哪里需要?
- 模板参数在 C++ 中存储在哪里?
- 我的重复检查代码中的错误究竟在哪里?
- 我在我的阵列中在哪里