指针数组,写一个包含三个名字的字符串

![img写一个方法,形参为指针,或指针数组,写一个包含3个名字的字符串数组,然后调用该方法输出该字符串数组里的三个名字(https://img-mid.csdnimg.cn/release/static/image/mid/ask/781676439286120.png "#left")

你的完整代码是什么,printle的定义要放在前面,或者在前面加上其函数原型的声明
而且你的代码和题意差的很多,你的数组不是3个元素,也没有通过键盘输入(你只cin了一次)
你可以这么写

#include <iostream>
#include <string>

void printNames(const std::string* names) {
    for (int i = 0; i < 3; i++) {
        std::cout << names[i] << std::endl;
    }
}

int main() {
    std::string names[3];

    for (int i = 0; i < 3; i++) {
        std::cout << "Enter name " << i+1 << ": ";
        std::cin >> names[i];
    }

    printNames(names);

    return 0;
}
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7575003
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以给出一个使用指针数组作为形参的函数,实现创建包含 3 个名字的字符串数组并输出这 3 个名字的方案。

    #include<stdio.h>
    
    void create_string_array(char** ppstr) // ppstr为指针数组
    {
        char* names[3] = {"Amy", "Bob", "Chris"}; // 创建一个包含 3 个名字的字符串数组
        for(int i=0; i<3; i++)
        {
            ppstr[i] = names[i]; // 将字符串数组中的名字依次赋给指针数组中的每个指针
            printf("%s\n", ppstr[i]); // 打印每个指针指向的字符串
        }
    }
    
    int main()
    {
        char* str_array[3]; // 创建指针数组
        create_string_array(str_array); // 调用函数参数为指针数组的名字
        return 0;
    }
    

    解释代码:我们首先在 main() 函数中创建了一个指针数组 str_array,它的长度为 3。然后我们调用 create_string_array() 函数,并将指针数组 str_array 的名字作为参数传入函数中。在函数内部,我们创建了一个包含