试图附加一个char字符串

时间:2012-07-06 23:31:12

标签: c++ arrays string variables

我知道这是一个基本问题,但我似乎无法将char字符串(\ r \ n)附加到另一个字符串。我曾尝试使用数组(strcpy)和字符串对象,但没有进展。要将字符串发送到Java applet,我需要附加\ r \ n字符,否则它将只是等待它们。当我使用带有c_str()函数的stirng时,我得到了一个

  

C:\ ucdhb2 \ gaia \ async_ssl \ no4 \ basic.cpp | 163 |错误:请求会员   'readit'中的'c_str',它是非类型'std :: string *'|

错误。任何帮助将不胜感激。

        char readit[45];

        cin >> readit;

        strcpy( readit, "\r\n" );

        SSL_write( ssl, readit, strlen(readit));   // This doesn't work 
//      SSL_write( ssl, "this works\n\r", strlen("this works\n\r"));  // This works

3 个答案:

答案 0 :(得分:4)

string应该是您所需要的。

std::string readit;
std::getline(std::cin, readit);
readit += "\r\n";
SSL_write(ssl, readit.data(), readit.size());

正如其他评论员所说,您的示例代码需要使用strcat而不是strcpy。但是,如果您使用char数组,则需要检查缓冲区溢出。 std::string不会溢出。

答案 1 :(得分:2)

尝试strcat函数,这将连接两个字符串

答案 2 :(得分:0)

使用:

而不是将一个字符串复制到另一个字符串的strcpy
char* str = new char[100];
sprintf(str, "%s\r\n", readit);