- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ポインタと文字列)
ポインタと文字列の問題について
このQ&Aのポイント
- ポインタと文字列の問題について質問です。a~z,A~Z及び,.?空白などで構成される文字列を入力して、大文字と小文字を区別しないでa~zの出現頻度をポインタを使ってそれぞれ表す方法を教えてください。
- 質問者はポインタを使ってプログラムを作成しましたが、実行結果が正しくありません。実行結果を修正する方法を教えてください。
- 質問者のプログラムは、文字列から大文字を小文字に変換していますが、その部分が正しくありません。修正して正しい結果を得る方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず書いてみました。比較してみてください。 (尚、F=40 → F=49 が正しいのではないでしょうか?) #include <stdio.h> int main(void) { char buffer[250+1], *p; int hindo[26], i; for(i = 0; i < 26; i++) hindo[i] = 0; while(1){ if(gets(buffer)==NULL) break; for(p=buffer; *p!='\0'; p++){ if(('a' <= *p) && (*p <= 'z')) *p -= 0x20; if(('A' <= *p) && (*p <= 'Z')) hindo[*p-'A']++; } } for(i=0; i<26; i++){ printf("%c=%d\n",'A'+i,hindo[i]); } exit(0); }
お礼
即レスありがとうございます。 F=49が正しかったみたいです。 間違っていてすみませんでした。 MovingWalkさんのやり方でやってみたところ出来ました。 回答ありがとうございました。