我有一些代码输出如下:
void exec_prompt(char * usr_name, char * host_name)
{
printf(" %s::%s\n", usr_name, host_name);
return;
}
但打印出来并不像预期的那样:
geisst::ALPHA-DT2
字符串前面有空格。
usr_name变量从main函数传递,并从getenv()函数返回。使用以下函数从main函数传递host_name变量:
char * returnHost()
{
char hostname[1024];
hostname[1023] = '\0';
gethostname(hostname, 1023);
return hostname;
}
也许getenv()函数会添加一个空格?
任何帮助或建议表示赞赏,请保持友好:P
盖斯特
答案 0 :(得分:2)
原因是你的格式有一个空格:“%s ::%s \ n”
只需将其更改为:
printf("%s::%s\n", usr_name, host_name);