我得用fputs打印一些东西,fputs用“const char*str”打印出来。
我有3个字符串要打印(不管是字符串还是char[])为str。
我不知道该怎么做。我用了3个字符串,并将它们添加到一个字符串中,但不起作用我也试着把字符串转换成char,但是什么也没用!
有什么建议吗?

struct passwd* user_info = getpwuid(getuid());
struct utsname uts;
 uname(&uts);

我想要我的char const*str=user_info->pw_name+'@'+uts.nodename

最佳答案

一个可能的解决方案:

/* 1 for '@' and 1 for terminating NULL */
int size = strlen(user_info->pw_name) + strlen(uts.nodename) + 2;
char* s = malloc(size);

strcpy(s, user_info->pw_name);
strcat(s, "@");
strcat(s, uts.nodename);


/* Free when done. */
free(s);

编辑:
如果C++,你可以使用std::string
std::string s(user_info->pw_name);
s += "@";
s += uts.nodename;

// s.c_str(); this will return const char* to the string.

08-28 00:38