我得用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.