已解决
C++打印字符串数组中的元素(字符串)
来自网友在路上 144844提问 提问时间:2023-09-26 21:54:27阅读次数: 44
最佳答案 问答题库448位专家为你答疑解惑
C++遍历字符串数组,在main
函数里定义一个字符串数组,要求依次输出字符串元素:
string a[4] = {"a", "vag", "gwe", "gewa"};
希望打印的结果
上面可以看做是二维指针,第一维是每个字符串,第二维是字符串里的字符。给出了五种写法,其中:
- 其中写法1-写法3是两重循环,访问到字符串的第二维(字符)
- 写法4-写法5只有一重循环,访问到字符串的第一维(字符串)。
写法1:两层for循环+下标引用
for (int i = 0; i < 4; ++i){for (int j = 0; a[i][j] != '\0'; ++j)cout << a[i][j];cout << " ";}
写法2:两层for循环+迭代器
for (int i = 0; i < 4; ++i){for (auto beg = a[i].begin(); beg != a[i].end(); beg++){cout << *beg;}cout << " ";}
写法3:两层for循环+标准库函数
for (auto p = begin(a); p != end(a); ++p){for (auto q = begin(*p); q != end(*p); ++q){cout << *q;}cout << " ";}
前面三种方法访问到了数组里的每一个字符,下面的写法直接输出字符串。
写法4:一层for循环+下标引用
for (int i = 0; i < 4; ++i)cout << a[i] << " ";
写法5:一层for循环+标准库函数
for (auto p = begin(a); p != end(a); ++p)cout << *p << " ";
不可用的写法
for (auto p = a->begin(); p != a->end(); ++p)cout << *p << " ";
最后只输出了a
注意:
a.begin()
会有错误a->begin()
会有错误a[1].begin()
无错误
这里面有很多类似多维数组的元素遍历,可以参考我之前的文章《C++ primer》练习3.43-3.45: 打印二维数组的元素。
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"C++打印字符串数组中的元素(字符串)":http://eshow365.cn/6-14178-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!