- ベストアンサー
2つのプログラムの違い
- 2つのプログラムの違いについて説明します。
- 1つ目のプログラムでは、入力した文字をそのまま表示します。
- 2つ目のプログラムでは、入力した文字を表示し、その後に入力された回数を表示します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
その他の回答 (2)
- D-Matsu
- ベストアンサー率45% (1080/2394)
関連するQ&A
- うまくいかないorz
出てきたアルファベットをカウントするプログラムを作成したのですが、 うまくいきません。 #include<stdio.h> int main(void) { int kaisu[25]={0}; char c; int i; do{ i=(c=getchar())-'a'; //printf("%d\n",i); kaisu[i]++; }while(c=(getchar())!=EOF); for(i=0;i>=25;i++){ printf("%d\n",kaisu[i]); } return(0); } 一応、EOFで読み込みを終了させたいのですが。 ご伝授ください。
- 締切済み
- C・C++・C#
- getchar関数について
非常に初心者な質問なのですが、このようなCプログラムをみたことがあります。 #include <stdio.h> int main(void) { int c; while((c = getchar()) != EOF){ putchar(c); putchar(c); } return 0; } なのですが、このプログラムは、実行した状態で、「Hello」と入力して改行すると、「HHeelllloo」と表示されるのです。 そこで疑問なのですが、最初に宣言した変数は c だけなのに、どうして一気に「HHeelllloo」と表示できるのでしょうか? 個人的な予想をすると、最後に入力した「o」だけが表示されるような気がしてたまらないのですが・・・。 なぜなのか教えてください。
- ベストアンサー
- C・C++・C#
- 直角三角形を表示するプログラム
下記のプログラムを実行するとコマンドプロントになにも表示されず、強制終了しなければならなくなってしまいます。 whileのところがおかしいのはわかったのですが、この書き方の何がいけないのかが分かりません。 初歩的な質問で申し訳ありませんが、回答していただけると有難いです。 #include <stdio.h> int main(void){ int count, i; printf("何段ですか?"); scanf("%d", &count); for(i = 1; i <= count; i++){ while(i-- > 0){ putchar('*'); } putchar('\n'); } return 0; }
- ベストアンサー
- C・C++・C#
- toupperに関して
C言語初心者です。 勉強のために本に書いてあるものを写しながら勉強しているのですが、 #include <stdio.h> #include <ctype.h> int main() { int c; while ((c=getchar())!=EOF){ c=toupper(c); putchar(c); } } 以上のものを写したのですが、入力した文字が小文字であろうと大文字であろうと関係なくそのまま表示されます。 どこを間違えているのでしょうか? どうぞよろしくお願いいたします。
- ベストアンサー
- C・C++・C#
- 置き換えのプログラム
c言語初心者です。 入力されたタブを\tに置き換えて、入力全体を出力するプログラムを、 #include <stdio.h> main() { int c; while((c=getchar())!=EOF){ if(c=='\t') printf("\\t"); putchar(c); } } と書いて実行できたのですが、入力した文字(タブ、空白、改行などは除く)を¥(バックスシュラッシュ)に置き換えて出力するプログラムにするためには、どのように書き換えればよいのでしょうか? どなたかご教授お願いします。
- ベストアンサー
- C・C++・C#
- MinGWのC言語でCTRL+Zで処理が終了しない
C言語をMinGWで学習していますが、以下のコードでCTRL+Zで処理が終了しません。お教え下さい。 #include <stdio.h> int main(void) { int ch; while ((ch = getchar()) != EOF) putchar(ch); return 0; } 端末エミュレータはminttyで、OSはWindws xp sp3です。ちなみにMinGW shellで実行するとCTRL+ZとEnterで処理が終了します。
- 締切済み
- C・C++・C#
- このプログラムの復元処理教えでください。助けてくだ
#include <stdio.h> int main(void) { char a[51]; char b[101]; char c[51]; int i,k; int cnt; printf("文字例-->"); scanf("%s",a); i = 0; k = 0; while(a[i] !='\0') { cnt = 0; b[k] = a[i]; while(b[k] = a[i]) { cnt++; i++; } k++; b[k] = cnt + 48; k++; } b[k]='\0'; printf("b=%s\n",b); printf("c=%s\n",c); //-------------------------------------------------- getchar(); return 0; }
- 締切済み
- 専門学校
- C言語 プログラミング 文字列
C言語のプログラミングについての質問です。 文字列を入力して、それを逆順に表示するというプログラムを作っているのですが、 どうしても上手くいきません。 どこか間違えているのかわかりません。 わかる方いらっしゃいましたらご回答お願いします。 #include <stdio.h> int main(void) { char data[100]; int i, leng; char c; leng = 0; c =getchar(); while((c != '\n') && (c != EOF)) { data[leng] = c; leng = leng + 1; c = getchar(); } printf("%c", data[c]); return 0; }
- ベストアンサー
- その他(インターネット・Webサービス)
- 文字列を関数に渡すぷろぐらむなのですがおかしいです。
<ソース> #include<stdio.h> #include<stdlib.h> void str(char a[]); int main() { char st[10]="abcde"; str(st); str("ABCabc123"); return 0; } void str(char a[]) { int i; printf("%s\n",a); i=0; while(a[i]){ a[i]=toupper(a[i]); putchar(a[i]); i++; } putchar('\n'); } 分からないところがあるので質問します。 toupperは、大文字にするんですよね。 putcharは、基本的にchar型でしたっけ? putsとgetsは、int型でしたっけ? 後、プログラムが暴走してます。 どこがおかしいんでしょう?
- ベストアンサー
- C・C++・C#
お礼
エンターって\nの事とは知りませんでした。ありがとうございます。