如何使用字符串文字

问题描述

我想执行以下操作:

const char errorMsg [64] ( useApple ? "Error Msg Apple\n" : "Error Msg Bee\n" );
MyMethod ( errorMsg );

对于带有签名的方法

MyMethod(const char* errorMessageInput );

我有一个接受 const char* 的方法,我想在发送它之前创建一个局部变量。我无法分配动态内存,但我可以使用比需要更大的数组(在这种情况下,我将其设为 64 )。我将如何编译此代码

解决方法

你可以声明一个指针来代替数组

const char *errorMsg = useApple ? "Error Msg Apple\n" : "Error Msg Bee\n";

实际上,如果方法参数的类型为 const char *,则无需声明常量数组。

你可以写例如

#include <cstring>

//...


char errorMsg [64];

strcpy( errorMsg,useApple ? "Error Msg Apple\n" : "Error Msg Bee\n" );

然后使用数组作为方法的参数。