2013-07-05 208 views
1

您好我新的C++和我需要以下一些問題輸入:字符指針轉換爲字符串

以我的頭文件(MyClass.h)的函數被定義爲:

bool Function(char *InString,char *outStr); 

這在「MyClass.cpp」已經實施這樣的:

bool MyClass::Function(char *InString,char *OutString=0) { 
    std::string str = ***** I require the InString to be converted to String and assigned to str. 
} 

在我的控制檯的主要功能我用了以下功能:

#include "MyClass.h" 
int _tmain(int argc, _TCHAR* argv[]) { 
    char inp[50]; 
    char output[50]; 
    memset(output,0,sizeof(output));//Intialized 
    std::cin>>inp; 
    MyClass x; 
    bool m = x.Function(inp,output); 
} 

任何幫助深表謝意。

+3

我建議你開始閱讀一些基本的教程,因爲這是非常簡單和基本的東西。 –

+3

你爲什麼不在程序中普遍使用'std :: string'? – 0x499602D2

+0

此外,默認參數進入聲明,而不是定義。 –

回答

0

以及std::string有這樣一個構造函數:

const char *s = "\nHello, World!"; 
std::string str(s); 
cout<<str; 

char *s2 = "\nHello, World!"; 
std::string str2(s2); 
cout<<str2; 

給我:

你好,世界!

你好,世界!

1

通過

str.assign(InString); 

你可以指定一個charstd::string

0

只需std::string str = InString;應該工作。

1

您可以將字符指針指向字符串。只要字符指針所指向的數據是空終止的,複製將按預期工作。

std::string str = InString; 
+0

好吧,我明白你的意思了。我正在詳細研究空指針。我想在使用memset之後,我們初始化並使用0自動放置空指針的字符數組。 – Suzane