当前位置:首页 > 编程笔记 > 正文
已解决

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 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!