我想知道如何将字符串添加到char *
数组中#define FROM "<rasulasath@Tester.com>"
#define TO "<rasulasath@gmail.com>"
#define CC "<rasulasath@gmail.com>"
#define SUBJECT "TESTING SUBJECT"
string testing("USING variables");
const char * c = "Subject: ";
static const char *payload_text[]={
"To: " TO "\n","From: " FROM "\n","Cc: " CC "\n",c "\n",
"\n", /* empty line to divide headers from body, see RFC5322 */
SUBJECT "\n",
"\n",
"Testing the msg.\n",
"Check RFC5322.\n",
NULL
};
我想将c
或变量测试添加到payload_test []数组中
或者是否有其他方法可以使用用户关联变量创建数组paylod_text []。
答案 0 :(得分:1)
为什么不使用动态分配的数组?
char **email = malloc(sizeof(*email) * 6);
email[0] = "To: " TO "\n";
...
char buf[256];
snprintf(buf, sizeof(buf), "%s \n", c);
email[3] = strdup(buf);
..
使用后不要忘记释放由strdup()创建的任何字符串。
答案 1 :(得分:1)
如果您想添加测试,那么只需将其放在
参数中即可testing.c_str()
还有一种方法
string body="Testing the msg.\n";
body+=testing;
body+="Bye ....";
并使用数组
body.c_str();
答案 2 :(得分:0)
我更喜欢将string
用于payload_text
。然后你可以轻松地附加字符和其他字符串。如果底层库需要payload_text.c_str()
char*
有boost::format()
。您可以使用它将%1%
,%2%
替换为您的主题和正文。比如boost::format("SOME STRING %1% AND THEN %2%") % subject % body
答案 3 :(得分:0)
要在C中本地执行此操作(与使用C ++ STL类相比),您可以使用strcat:
char* buffer = malloc((strlen(c) + strlen(payload_text) + 1) * sizeof(char));
strcpy(buffer, payload_text);
strcat(buffer, c);
仅当您确定输入以空值终止且不包含内部空值时,此选项才有效。否则使用strncpy和strncat。
使用STL类在C ++中执行此操作:
string result = string(payload_text);
result += testing;