如何将char *转换为字符串*?

时间:2015-04-10 06:59:13

标签: c++

告诉我如何在一个指针字符串中创建不同的字符串,如数组。 见以下两个程序。第一个给出错误。这有什么不对? 请更正。

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

int main()
{
    string *j={"nilesh",
                "rohit",
                "samir",};

    cout<<j<<endl;
}
#include <stdio.h>

const int MAX = 4;
int main ()
{
    char *names[] = {"Zara Ali","Hina Ali","Nuha Ali","Sara Ali",};
    int i = 0;
    for ( i = 0; i < MAX; i++)
    {
        printf("Value of names[%d] = %s\n", i, names[i] );
    }
    return 0;
}

2 个答案:

答案 0 :(得分:2)

简单地写

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

int main()
{
    string s[] = { "nilesh", "rohit", "samir", };

    for ( const string &t : s ) cout << t << endl;
}

您也可以使用标准类std::vector<std::string>

代替数组

例如

#include <iostream>
#include <string>
#include <vector>

int main()
{
    std::vector<std::string> v = { "nilesh", "rohit", "samir", };

    for ( const std::string &s : v ) std::cout << s << std::endl;
}

答案 1 :(得分:-2)

为什么不以这种方式试试?

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

int main()
{
    string j[]={"nilesh",
                "rohit",
                "samir"};

    cout<<j<<endl;
}

直接打印j不会打印所有三个名称。您需要打印j[0], j[1] ...