- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイル操作で全角空白を消す)
C言語のファイル操作:全角空白を消去するプログラム
このQ&Aのポイント
- C言語のファイル操作について、全角空白を消去するプログラムを作成する方法を教えてください。
- テキストファイルから空白を削除して、画面に表示するプログラムを作成する方法を教えてください。
- C言語のファイル操作で、全角空白を消去するプログラムを作成したいです。ご教示いただけないでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
★ちょっと泥臭い(スマートでない)ですが・・・。 ☆最大レコード長256未満のファイル対象 ☆1レコード処理後出力 ・(略) unsigned char cBuf[256], cWork[256]; int k, iLen, nn, iZenK; ・(略) while( NULL != fgets( cBuf, 255, fp1 ) ){ iLen = strlen( cBuf ); for( nn = 0, k = 0; k < ( iLen - 1 ); k++ ){ if( 0x20 == cBuf[k] ) continue; // 半角空白 if( 0 == isascii( cBuf[k] ) ){ iZenK = 0; if( 0x81 == cBuf[k] ) iZenK++; // unsigend if( 0x40 == cBuf[k+1] ) iZenK++; if( 2 == iZenK ){ // 全角空白 k++; continue; // cBuf[k] = 0x09;◆ } } cWork[nn++] = cBuf[k]; // 格納 cWork[nn ] = 0x00; // 文字列末端処理 } printf( "%s\n", cWork ); } 注:インデント(◆)に全角空白を用いています。
お礼
yama5140さん すいませんこちらの手違いでしたm(_ _)m おかげでうまく動かすことができました(^o^) 本当にありがとうございました!!!
補足
yama5140さん とてもわかりやすいプログラムをありがとうございます(^o^) また初歩的な質問で申し訳ないのですが… 最後にスペースをすべて消した文字列 cWork をファイルに書き込むには どうしたらいいのでしょうか? 普通に表示まではうまく行ったのですが、 ファイルに書き込むと何も表示されません。 多分記述が悪いだけと思いますが… printf("%s",cWork); fprintf(fpout,"%s",cWork);