gpt4 book ai didi

c++ - 基于范围的 for 循环,使用指向字符串的指针

转载 作者:太空狗 更新时间:2023-10-29 20:09:17 27 4
gpt4 key购买 nike

在新的 C++ 标准 C++11 中,可以使用基于范围的 for 循环来处理字符串的每个字符。

#include<iostream>
#include<string>

int main()
{
std::string s1 = "this is an example";
for (char &c:s1)
//do any operation
std::cout<<c;
return 0;
}

而不是引用 char &c:s1 我如何使用指针在基于范围的 for 循环中执行此操作?我想做一些像 char *p 指向 s1 的事情。

最佳答案

基于范围的 for 循环不会给你指针。但是,您可以制作一个:

for (char &c : s) {
char *p = &c;
}

或者您可以使用常规循环自己完成:

// Note: Requires C++17, where s.data() is relaxed to a char* type.
for (char *p = s.data(), *e = p + s.size(); p != e; p++) {
}

// Pre-C++17 version.
for (char *p = &s[0], *e = p + s.size(); p != e; p++) {
}

关于c++ - 基于范围的 for 循环,使用指向字符串的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47834221/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com