質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

3回答

362閲覧

プログラムを正しく表示させたい

party_0621

総合スコア9

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2020/08/17 13:08

下のような感じで適当に文字列を入力して、その文字列の中から特定の文字の数を数えるプログラムを書きましたが、実行した結果、最後のaの文字数は・・・の部分が、例えばaaasasaと打った場合、5個中7個と表示され逆になってしまいます。どう変えたら正しくなりますか?
回答お願いします!!

#include <stdio.h> int str_length(const char []); int count_char(const char mojiretsu[], int c) { int i; int num = 0; for(i = 0; mojiretsu[i] != '\0'; i++) if(mojiretsu[i] == c) num++; return (num); } int main(void) { char mojiretsu[100] = {'\0'}; char ch[10]; int len; printf("文字列を入力して下さい:"); scanf("%s", mojiretsu); printf("数えたい文字を入力してください:"); scanf("%s", ch); len = str_length(mojiretsu); printf("aの文字数は%d個中%d個です\n", count_char(mojiretsu, ch[0]), len, mojiretsu); return (0); } int str_length(const char s[]) { int len = 0; while(s[len]){ len++; } return len; }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

C

1printf("aの文字数は%d個中%d個です\n", count_char(mojiretsu, ch[0]), len, mojiretsu); 2// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~ 逆じゃない? 3// あと mojiretsu 使ってない

投稿2020/08/17 13:20

ozwk

総合スコア13521

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

単純に引数を逆にする、でいいのではないでしょうか?

c

1printf("aの文字数は%d個中%d個です\n", len, count_char(mojiretsu, ch[0]), mojiretsu);

投稿2020/08/17 13:14

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/08/17 13:15

mojiretsuを表示するための%sが書式にないので、これは不要そうですね。
guest

0

printf("aの文字数は%d個中%d個です\n", count_char(mojiretsu, ch[0]), len, mojiretsu);
ですので、
printf("aの文字数は%d個中%d個です\n", カウントした文字数, 全体の文字数, mojiretsu);
ですよね?

引数は順番に使われるので、

aの文字数は『カウントした文字数』個中『全体の文字数』個です

となります。
変えたい場合は、引数の順序を変えてください。

(最後のmojiretsuは特に使われていませんので、無くても良いのでは)

投稿2020/08/17 13:14

編集2020/08/17 13:16
amiya

総合スコア1218

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問