• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイル操作で全角空白を消す)

C言語のファイル操作:全角空白を消去するプログラム

このQ&Aのポイント
  • C言語のファイル操作について、全角空白を消去するプログラムを作成する方法を教えてください。
  • テキストファイルから空白を削除して、画面に表示するプログラムを作成する方法を教えてください。
  • C言語のファイル操作で、全角空白を消去するプログラムを作成したいです。ご教示いただけないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • yama5140
  • ベストアンサー率54% (136/250)
回答No.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 ); } 注:インデント(◆)に全角空白を用いています。

HNDHDK
質問者

お礼

yama5140さん すいませんこちらの手違いでしたm(_ _)m おかげでうまく動かすことができました(^o^) 本当にありがとうございました!!!

HNDHDK
質問者

補足

yama5140さん とてもわかりやすいプログラムをありがとうございます(^o^) また初歩的な質問で申し訳ないのですが… 最後にスペースをすべて消した文字列 cWork をファイルに書き込むには どうしたらいいのでしょうか? 普通に表示まではうまく行ったのですが、 ファイルに書き込むと何も表示されません。 多分記述が悪いだけと思いますが… printf("%s",cWork); fprintf(fpout,"%s",cWork);

関連するQ&A

専門家に質問してみよう