- ベストアンサー
アルファベットの出現頻度求めるプログラム
- アルファベットの出現頻度を求めるプログラムを作成しています。
- プログラムの意味がわからない箇所やエラーメッセージについて質問しています。
- 使用しているアポストロフィーが使えないエラーが発生しており、解決方法を求めています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- Borlandで組んだC+サンプルでエラーに
borlandでc++のあるサイトのサンプルを動かそうとしたのですが、 C:\borland\work\stl_sample3>bcc32 stl_sample3.cpp Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland stl_sample3.cpp: エラー E2206 stl_sample3.cpp 22: 不正な文字 '$' (0x24)(関数 main() ) エラー E2206 stl_sample3.cpp 30: 不正な文字 '$' (0x24)(関数 main() ) エラー E2206 stl_sample3.cpp 33: 不正な文字 '$' (0x24)(関数 main() ) エラー E2206 stl_sample3.cpp 43: 不正な文字 '$' (0x24)(関数 main() ) エラー E2206 stl_sample3.cpp 45: 不正な文字 '$' (0x24)(関数 main() ) エラー E2206 stl_sample3.cpp 48: 不正な文字 '$' (0x24)(関数 main() ) *** 6 errors in Compile *** というエラーになりました。 22行目は map<string, vector<string> > $_POST; となっています。 もしかして、borland c++コンパイラでは$が使えないのでしょうか? VSでないとダメなのですか?
- ベストアンサー
- C・C++・C#
- 課題で、アルファベットを入力するとすべてのアルファベットを小文字に変換
課題で、アルファベットを入力するとすべてのアルファベットを小文字に変換して出力するプログラムを作成しました。2度以上同じ処理を行う場合はその部分を関数としなければいけないのですが、うまくできなかったようです。一応実行結果のとおりに表示されますが、複数のエラーや警告が出ました。どこが間違っているのでしょうか? ・警告 W8065 test.c 9: プロトタイプ宣言のない関数 'henkan' の呼び出し(関数 main ) ・エラー E2379 test.c 10: ステートメントにセミコロン(;)がない(関数 main ) ・警告 W8070 test.c 10: 関数は値を返すべき(関数 main ) ・エラー E2356 test.c 12: 'henkan' の再宣言で型が一致していない ・エラー E2344 test.c 5: 一つ前の 'henkan' の定義位置 ・エラー E2040 test.c 16: 宣言が正しく終了していない ・エラー E2141 test.c 16: 宣言の構文エラー ・エラー E2141 test.c 16: 宣言の構文エラー ・エラー E2190 test.c 29: 不要な } 実行結果↓ **************************** Atsushi TAKEDA ==>atsushi takeda **************************** #include <stdio.h> #include <string.h> #include <ctype.h> int henkan(); int main(void) { henkan() } int henkan; char str[100]; int i,j,chk,len; for(j=0;j<6;j++){ gets(str); len=strlen(str); printf("==>"); for(i=0;i<len;i++){ chk=isupper(str[i]); if(chk!=0) str[i]=tolower(str[i]); printf("%c",str[i]); } printf("\n"); } return 0; }
- 締切済み
- C・C++・C#
- DOSでコンパイルしたらインクルードファイルがない?(開けない?)
borland c++ コンパイラ5.5をインストールして コマンドプロンプトで実行したのですが こんなメッセージがでました。どうすればよいのでしょうか? ライブラリとかいるんでしょうか? C:\borland\bcc55\Bin>bcc32 ffff.cpp Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland ffff.cpp: エラー E2209 ffff.cpp 1: インクルードファイル 'iostream.h' をオープンできない エラー E2451 ffff.cpp 5: 未定義のシンボル cout(関数 main() ) *** 2 errors in Compile *** ちなみにソースファイルの内容は以下のとおりです。 #include <iostream.h> void main(){ cout<<"ffff"; }
- 締切済み
- C・C++・C#
- このプログラムのどこを直せばいいんでしょうか?
いま、文字列strの中に文字cが含まれている個数を表示するプログラムを作っているんですが、下のように作っても、上手く行きません。 どこをどう直せばいいのか教えてください! #include <stdio.h> int str_chnum (const char str[],int d) { int i=0; int sum=0; while(str[i]!=0){ if(str[i]==d ){ sum++; } i++; } return(sum); } int main(void) { int c; char str[128]; puts("put sentence..."); scanf("%s",str); puts("search character..."); scanf("%d",&c); printf("there are %d %ds in this sentence.",str_chnum(str,c),c); return(0); }
- ベストアンサー
- C・C++・C#
- Borland C++ Compiler 5.5について(3)
つい最近Borland C++ Compiler 5.5をインストールしたんですがコンパイルしようとすると test.cpp: エラー E2209 test.cpp 1:インクルードファイル'stdio.h'をオープンできない。 エラー E2268 test.cpp 5:未定義の関数'printf'を呼び出した(関数 main()) *** 2 errors in Compile*** と出てしまうんですがどういうことなんですか? 教えてください。
- 締切済み
- C・C++・C#
- プログラムのご指摘
ファイルを読み込み、英字のみか、先頭が英字で二文字目以降が英字または数字である文字列を出力するプログラムを作りたいです。 #include<string> #include<fstream> #include<cctype> #include<iostream> int main (){ char c; std::string key; std::ifstream fin( "1234.txt"); if( fin.fail() ){ std::cerr << "ファイルを開けませんでした" << std::endl; exit(1); } while (fin >> get(c)){ if(!isalpha(c)) continue; key = tolower(c); while (fin >> get(c)){ if (!isalnum(c)){ key.unget(); break; } key = tolower(c); } break; std::cout << key; } } このようなプログラムを作りましたが、↓のエラーが出ていました。 どなたご指摘願います。 エラーメッセージ: sou2-1.cpp: In function `int main()': sou2-1.cpp:20: error: `get' undeclared (first use this function) sou2-1.cpp:20: error: (Each undeclared identifier is reported only once for each function it appears in.) sou2-1.cpp:25: error: `unget' undeclared (first use this function)
- 締切済み
- C・C++・C#
- 10進⇔16進変換プログラム
こんにちは、C言語を独学しているものです。 すみませんがお助け頂けますでしょうか? C言語の基礎の本のプログラムをそのままコピーしていますが、 私のミス(自分で自覚なし)のためうまく生成できません。 (1)エラーで言っているLについて どうやって修正すべきでしょうか? (2)また、ソース内の/* このソースコードの意味が理解できません */ コメントについて どういう意味を示しているのかお手数ですが教えて頂けませんか? 返信が遅くなるかもしれませんが、必ず目を通し、学ばせて頂きます。 お手数をお掛けしますがよろしくお願いします。 ★ゆみころ★ ************ルール************* 1)プロンプトを表示する 2)”d またはD 10進”が入力されたら 16進へ変換 3)”h,またはH 16進”が入力されたら 10進へ変換 4)”qまたはQ”が入力されたら 終了 5)変数あ 変換指定を保持するフラグと変換すべき数値を保持するものを用意する。 *******ソースコード*********** #include <stdio.h> #include <stdlib.h> void main(void) { char conv_flag[2]; unsigned long data; int loop; for(loop=1;loop;) /*意味がわかりません。Loop=1で初期化(これはOK理解できる);Loop ここでループ継続条件なのですが、なぜLoopだけなのかわかりません*/ { printf("\n>"); if(scanf("%1s",&conv_flag[0]) ==EOF) { continue; /*errorのためこれ以降処理しない*/ } switch(conv_flag[0]) { case 'd':/*10->16*/ case 'D': if(scanf("%ld",&data)=!1) /*意味がわかりません。なぜ=!1 ? これはl (Long) の間違えでしょうか?本には1(いち)に見えますが。。。*/ { scanf("%*s");/*意味がわかりません。入力した文字の始めの一文字目のスペースを読み捨てるということでしょうか?*/ continue; } printf(" =%lX(HEX)",data); break; case 'h':/*16->10*/ case 'H': if(scanf("%lx",&data)=!1) { scanf("%*s"); continue; } printf(" =%lu(DEC)",data); break; case 'q':/*16->10*/ case 'Q': loop=0; break; default: scanf("%*s"); break; } } } *****エラーメッセージ************ C:\Practice>bcc32 16.cpp Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland 16.cpp: Error E2277 16.cpp 21: Lvalue required in function main() Error E2277 16.cpp 32: Lvalue required in function main() *** 2 errors in Compile ***
- ベストアンサー
- C・C++・C#
- drand48()が使えない
お世話になっております、皆様のおかげで昨日ウインドウズ上でCを動かせるようになったサルプログラマーです。 Borlandの無償配布をダウンロードしました。Linuxで gcc program1.c -o program1 -lm -O としてコンパイルできていたものをそのまま持ってきて(拡張子変えて)、 C:\bcc>bcc32 program1.cpp としたら Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland program1.cpp: エラー E2268 program1.cpp 61: 未定義の関数 'srand48' を呼び出した(関数 main() ) エラー E2268 program1.cpp 66: 未定義の関数 'drand48' を呼び出した(関数 main() ) *** 2 errors in Compile *** となってしまいました。 いままでプログラムの中身は ======================================================== srand48(seed); for(i=0; i<I; i++){ while(1){ do{ x=drand48()*2.0-1.0; y=drand48()*2.0-1.0; : : ======================================================== という形でLinux上ではコンパイルできてましたが、ウインドウズに持ってきたらダメでした。ある掲示板でdrand48()は非標準関数であるとありましたが、このために使えないのでしょうか?[0,1)のdoubleの乱数を返す、また質がいいからオススメと友達に言われて使っていたのです。ですから非常にいいなあと思って使っていたのですが、どうにかならないでしょうか。使えるようにするにはどうしたらよいのでしょうか、色々あるかと思いますが何か解決方法をご教授ください。
- ベストアンサー
- C・C++・C#
- C アルファベットのカウント
#include<stdio.h> #define N 97 #define M 122 int main(void) { char str[ ]="national university"; int i,h,count; char check; for(h=N-1;h<=M;h++){ h++; char check = (char)h; for(i=0;str[i] != '\0';i++){ if(str[i] = check){ count++; } } printf("%c:%d\n",check,count); } } というコードで、アルファベットをそれぞれ何文字使用しているか調べるつもりだったのですが、結果は次のようになってしまいました。解説お願いします。 a:28 c:56 e:84 g:112 i:140 k:168 m:196 o:224 q:252 s:280 u:308 w:336 y:364 {:392
- ベストアンサー
- C・C++・C#
- bcpadでコンパイルできない
この前学校でbcpadをつかった授業があったので家でやってみようと思い、 Borland C++ Compiler 5.5 とCPad for Borland C++Compiler をインストールして設定もしました。 そしてbcpadに #include<stdio.h> int main(void){ printf("Hello World"); return 0; } と入力し、保存してコンパイルしてみました。 しかし、以下のようなエラーメッセージが出ました。 「コンパイルに失敗しました ファイル"C:Users\aaaa\downloads\Documents\C\hello.exe" は存在しません」 また下のメッセージのところには hello.cpp: Error E2379 hello.cpp 7: Statement missing ; in function main() *** 1 errors in Compile *** と出ていました。 何がダメなのか全くわかりません。 OSはwindows7です。 どなたか詳しい方ご教授をお願いします。
- ベストアンサー
- フリーウェア・フリーソフト
お礼
hanabutako先生、 ご親切なご回答をどうもありがとうございました。 実際のコードありがとうございました。 Tacosan先生の言っている意味がわかりました。 たぶん本では memsetという変数を紹介したかったんだと思います。 今までのPageではなく初登場でしたのであえて紹介したんだと思います。 たしかに使い勝手が悪いので 普通の初期化の方がいいと思いました。 この本は全てscanfを使ってます、基礎編だからでしょうか? getcharはたまにしか出てきません、きっと応用編にいったらgetcharを使うように書いてあるのかもしれません。 whileでも書けるんですね! 見やすいしわかりやすいです! ありがとうございました。 >>str[i] != '\0'とすべき。 >>正しくはputchar('\n')でしょう。 ご指摘ありがとうございました。 間違っていました。ほんとうに私はよく間違えて気付かないので情けないです。 (何回も見直し考えましたが 気づきませんでした涙) すべてを直したら無事にプログラムは動き、結果も正しく得られました。 詳しい解説のおかげで 私が理解できなかった1行も理解することができました。 長々とお付き合い頂きhanabutako先生はじめ 皆さま、どうもありがとうございました。 私が理解できていないのは、頭が悪いのと、C言語を学校へ行かず一人で勉強しようと無茶をしていることと 日本語が得意ではないからです。 何度もこちらで親切で物知りな先生たちに助けてもらいただただ感謝です。 すみませんが、今後ともよろしくお願いします。 ★ゆみころ★