この記述の中の「_mbclen((BYTE*)p)」が文字列pの先頭の文字のビット数を取得する記述、「tmp[x]=*(p++)」がp[0]をtmp[x]に格納する記述だとするなら、whileループの中のどこかで文字列pの全ての文字を一つずつ前にずらす操作が必要だと思うのですが、一体何処でその操作を行っているのでしょうか?
もし「tmp[x]=*(p++)」の記述だけでp[0]をtmp[x]に格納する操作と文字列pの全ての文字を一つずつ前にずらす操作が含まれているのなら、どの部分が「p[0]をtmp[x]に格納する操作」で、どの部分が「文字列pの全ての文字を一つずつ前にずらす操作」なのかを教えて頂けないでしょうか?
記述文
char *Str="あいabcうえお";
char *p=Str;
char tmp[3];
while(*p!='\0'){
switch(_mbclen((BYTE*)p)){
case 1:
tmp[0]=*(p++);
tmp[1]='\0';
break;
case 2:
tmp[0]=*(p++);
tmp[1]=*(p++);
tmp[2]='\0';
break;
default:
//error
break;
}
printf("%s\n",tmp);
}