実現したいこと
fgetsで文字をオーバーフローせず出力するものを作ってみたのですが、「aあああああ」と入力すると「 aああああ・」となってしまいます。
この"・"のような2バイト文字が半分に切れてしまった文字を判定し、出力させないようにするにはどうしたらよいでしょうか?
ソースコード
C
1#include <stdio.h> 2void main() 3{ 4 /*--------変数・配列の宣言--------*/ 5 int iCount = 0; /* 入力した文字数を数える変数 */ 6 char cBuffer[200] = {'\0'}; /* 入力した文字を出力するための配列 */ 7 8 printf("1_文字列を入力し、その文字列をそのまま出力します。\n"); 9 10 printf("文字列を入力:"); 11 12 /*--------文字列の入力--------*/ 13 fgets(cBuffer, 11, stdin); 14 15 /*--------NAL文字を配列の最後にする--------*/ 16 while(cBuffer[iCount] != 0x00) 17 { 18 if(cBuffer[iCount] == 0x0a) 19 { 20 cBuffer[iCount] = 0x00; 21 putchar('\n'); /* 改行 */ 22 break; 23 } 24 iCount++; 25 } 26 27 /*--------文字列の出力--------*/ 28 printf("入力した文字列は「 %s 」です。\n", cBuffer); /* 入力した文字列を出力 */ 29}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。