我有一个代码,希望在条形图之间的中心显示消息。我查看了C函数,发现没有什么可以让我这样做。
sprintf(message,"============================================================");
send_message(RED, message);
sprintf(message, "[ Welcome %s ]", p->client_name);
send_message(RED, message);
sprintf(message,"============================================================");
send_message(RED, message);
我正在寻找一种方法来显示欢迎消息,通过计算用户名的大小始终显示为集中。例如:
示例1:
=============================================
Welcome Carol
=============================================
示例2:
=============================================
Welcome Giovanna
=============================================
答案 0 :(得分:1)
它没有特殊功能,所以你应该做数学。
示例代码:
#include <stdio.h>
#include <string.h>
int main(void) {
char* message = "Welcome Giovanna";
int len = (int)strlen(message);
printf("===============================================\n"); // 45 chars
printf("%*s\n", (45-len)/2 + ((len % 2 == 0) ? 1 : 0) + len, message);
printf("===============================================\n");
return 0;
}
输出:
=============================================
Welcome Giovanna
=============================================
PS:您可以将(45-len)/2 + ((len % 2 == 0) ? 1 : 0)
替换为(46-len)/2
,以获得相同的结果,因为后者更短。