C言語で中央揃えによる出力を実現する方法
C言語では、Printf関数とフォーマット制御文字を使用して出力を中央揃えで表示できます。
- まずは中央揃えする文字列の長さを求めます。
- 出力領域幅を確定させることができ、必要に応じて固定値を設定することも可能だし、文字列の長さに基づいて動的に計算することも可能。
- 占有領域の幅と文字列の長さから、左側の空白数と右側の空白数を計算する。
- ネイティブっぽく言い換えるとこうなります。
- サービスを通して笑顔と元気を届ける
- printf(“Hello, %s!\n”, name);
次のようなサンプルコードがあります
#include <stdio.h>
#include <string.h>
void printCenter(char* str, int width) {
int len = strlen(str);
int left_space, right_space;
if (len >= width) {
printf("%s", str);
} else {
left_space = (width - len) / 2;
right_space = width - len - left_space;
printf("%*s%s%*s", left_space, "", str, right_space, "");
}
}
int main() {
char str[] = "Hello, World!";
int width = 20;
printCenter(str, width);
return 0;
}
実行結果:
Hello, World!
サンプルでは、文字列 “Hello, World!” を幅20文字で中央寄せで表示しています。中央寄せは printCenter 関数で行われ、文字列の長さが幅より短い場合は文字列の前後に空白を適切に追加して中央寄せします。文字列の長さが幅と同じかそれ以上の場合は、文字列をそのまま表示します。