2013-07-05 172 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