我需要一个函数来返回一个字符串。我使用以下代码来声明函数:
const char* serv_con(char app_data[50])
{
char send_data[1024],recv_data[1024];
//i am avoiding code segments irrelevant to the issue.
return recv_data;
}
然后像这样在main中调用函数:
int main()
{
char ser_data[50], app_data[50];
ser_data[0] = '\0';
app_data[0] = '\0';
//avoiding code segments irrelevant to the issue.
app_data = serv_con(ser_data); //function call
}
在编译它给出了错误:
connect.c:109: error: incompatible types when assigning to type ‘char[50]’ from type ‘const char *’
然后我用 std::string 替换了声明中的const char。现在的声明如下:
std::string serv_con(char app_data[50])
{
char send_data[1024],recv_data[1024];
//avoiding code segments irrelevant to the issue.
return recv_data;
}
并以与上述相同的方式调用它。但它仍然在编译时给出以下错误:
connect.c:13: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘:’ token
请告诉我如何将字符串作为函数的返回类型。我工作的平台是linux。提前致谢。