2014-04-26 53 views
0

我在我的代碼中得到這個錯誤,我知道它爲什麼在那裏。但我現在不知道如何解決這個問題並達到我想要實現的目標。 list [i] = user.get; < <這行代碼是我試圖把一個字符串放入一個char數組中。我怎麼會將字符串轉換爲字符,同時仍然能夠保持user.length()和getline,所以我可以知道我的動態數組應該是多大?'std :: string'沒有名爲'get'的成員list [i] = user.get;

#include<iostream> 
#include<cstring> 
using namespace std; 
int main() 
{ 
char *list; 
string user; 
int counter[26]; 
int data; 
cout<< "Enter in a line of text (all lowercase)"<<endl; 
//cin>>user; 
getline(cin, user); 
//cin.get(user); 
cout<< user.length()<<endl; 
list = new char [user.length()]; 
for(int i=0; i<user.length(); i++) 
{ 
    list[i]=user.get; 
} 
cout<< list[0]<<endl; 
/* 
char alphabet [26]; 
for (int i=0; i<25; i++) 
{ 
    data=i+97; 
    alphabet[i]=data; 
    cout<< data; 
} 

for (int i=0; i<25; i++) 
{ 
    if (list[i]==alphabet[i]) 
    counter[i]++; 
    cout<< list[0]; 
} 
*/ 
return 0; 
}  

回答

1

更換

list[i]=user.get; 

隨着

list[i]=user.at(i); 
2

您可以找到字符串記錄here

c_str()方法返回一個指向底層字符數組的指針,您可以將memcpystrcpy轉換爲您自己的char數組。

std::size_t user_length = user.length() + 1; 
char* list = new char [user_length]; 
strncpy(list, user.c_str(), user_length);  
... 
delete [] list; 
相關問題