2015-04-10 2 views
-13

Расскажите, как создать различные строки в одной строке указателя, например массиве. см. Следующие две программы. 1-й из них дает ошибки. что здесь не так? Пожалуйста, исправьте его.Как преобразовать символ char * в строку *?

#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; 
} 
+0

Никакое тело не ответит на это, и я не стану ... Вы должны начать читать ... для справки ... http://ideone.com/Q7Zsme – HadeS

+0

Возможно, вы должны начать [здесь] (здесь) http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list). – molbdnilo

ответ

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; 
} 
-2

Почему бы не попробовать в этом ш ай?

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

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

    cout<<j<<endl; 
} 

Печать j напрямую не печатает все три имени. Вам нужно распечатать j[0], j[1] ...

Смежные вопросы