また基本的な質問させてください。
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(void){
// 文字列を配列に入れる
char src[128] = "一二三ABCいろは";
char *p = src;
int len;
// ロケートを日本にする
setlocale(LC_ALL, "jpn");
// マルチバイトの文字列分("一二三ABCいろは")ループ
while ((len=mblen(p, MB_CUR_MAX)) > 0) {
printf("%-2.*s : %dバイト\n", len, p, len);
p += len; // 文字のバイト分ずらす
}
return 0;
}
サンプルの抜粋ですが、printf("%-2.*s : %dバイト\n", len, p, len);
の部分の意味を教えてください。
printf("%s : %dバイト\n", p, len);
とした場合はわかるのですが、
■■■■■■■■■■■■■■■
一二三ABCいろは : 2バイト
二三ABCいろは : 2バイト
三ABCいろは : 2バイト
ABCいろは : 1バイト
BCいろは : 1バイト
Cいろは : 1バイト
いろは : 2バイト
ろは : 2バイト
は : 2バイト
■■■■■■■■■■■■■■■
と出力されるので、%-2.*の部分の意味を知りたいのですが、
%-2.*とgoogleで検索しても、全然関係ないものが出てきてほしい答えにたどりつけませんでした。