|
環境は、
UNIXでSolaris8です。
コンパイルはgccです。
以下の様にしてみました。
2個目のwhileループ「while(buf@i])」に入ってくれないのですが
何故でしょうか。
#include <stdio.h>
#define is_zen(c) ((c & 0xFF) >= 0x81 && (c & 0xFF) <= 0x9F || (c & 0xFF) >= 0xE0 && (c & 0xFF) <= 0xFC)
main()
{
char buf[256];
char c;
char p[2];
int i;
while (fgets(buf, sizeof buf, stdin)) {
buf[strlen(buf)-1] = '\0';
printf("buf [%s]\n",buf);
while(buf[i]) {
c = buf[i] ;
if (is_zen(c)) {
p[0] = buf[i];
p[1] = buf[i+1];
printf("全角文字\n") ;
printf("[%s]\n",p);
i++;
} else {
printf("半角文字\n") ;
printf("[%c]\n",buf[i]);
}
i++;
}
}
}
|