首页 > 解决方案 > 数组打印功能

问题描述

我正在尝试创建一个打印数组元素的函数。我设置它以便计算数组的大小,但我不知道为什么它不起作用。你能给我一些建议吗?谢谢!

#include <iostream>
#include <string>
using namespace std;

void print_array(string s){
    for(int i = 0; i < ( sizeof(s) / sizeof(s[0]) ); i++){
        cout << s[i] << "\n";
    }
}

int main()
{
    string names[5] = {"Dante", "Greg", "Bob", "Victor", "Saber"};
    print_array(names);
}

标签: c++

解决方案


您传递的是字符串而不是字符串数组。您可以使用这样的向量来修改您的代码:

void print_array(const std::vector<std::string> &vector){
    for (const auto &string : vector) {
        std::cout << string << "\n";
    }
}

int main()
{
    std::vector<std::string> names = {"Dante", "Greg", "Bob", "Victor", "Saber"};
    print_array(names);
}

使用向量允许您使用自动生成的 for 循环,这很容易阅读和使用。


推荐阅读