C言語なら俺に聞け! Part 70

このエントリーをはてなブックマークに追加
すまそ
// Shift-JIS code
// blockupper BYTE Content
// 0   0x00 - 20 Control , space & \0 /BYTE
// 1   0x21 - 7e ASCII /BYTE
// 2   0xa1 - df kana /BYTE
// 3   0x81 - 9f block-1 followed by 0x40 - 7e 0x80 - fc
// 4   0xe0 - ef block-2 followed by 0x40 - 7e 0x80 - fc
// 5   0xf0 - fc block-3 followed by 0x40 - 7e 0x80 - fc JIS X 0213
394376:03/12/30 02:39
すみません。
レスつけていただいてるのに、まだどうやったらできるのか見当もつきません。
勉強して出直してきた方がよさそうですね。
char *sjisplit(char *str , int n)
{
 int i,ch=0;
 static unsigned char *p=(unsigned char*)str;
 for(i=0;i<strlen(str);i++){
  if( (*p>0x80 && *p<0xa1) || *p>0xe0 ){
   p++;
   i++;
  }
  ch++;
  if(ch>=n) break;
 }
 return p;
}
396395:03/12/30 02:58
ch++;
の後に
p++;
が必要だった。
あと、実際にはキャストが必要。