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

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

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

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

3回答

291閲覧

サブルーチンを使用して文字列に文字#がいくつ含まれているか

donsuke

総合スコア10

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2018/12/21 07:01

サブルーチンを使用して文字列の中に文字#がいくつ含まれているか確かめる。

main 関数でキーボードから’#’を含む文字列を入力しなさい。その文字列を引数として、文字列の
中に#がいくつあるかを値として返すサブルーチンを作り、main 関数で元の文字列とその結果を
表示するプログラムを制作する。

途中までかけたのですが実行すると個数が出てこない。

abc#efg#hij str=abc#efg#hij,the number of# is 593715809

となってしまう。

行ったプログラミング

#include<stdio.h>

sub(char str[100]){
int i,n;
n=0;
for(i=0;str[i]!=0;i=i+1){
if(str[n]=='#');
n++;
}

return(n); }

main(){
char str[100];
scanf("%s",str);
sub(str);

printf("str=%s,the number of# is %d",str); return 0;

}

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

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

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

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

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

Zuishin

2018/12/21 07:03

C で # を扱うので C# タグをつけたのですか?
x_x

2018/12/26 02:58

いやいや 正しいタグをつけるようお願いします
guest

回答3

0

sub関数の戻り値を受け取ってないので、それを受け取ってprintfしてください。

投稿2018/12/21 07:06

takabosoft

総合スコア8356

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

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

0

main(){
char str[100];
scanf("%s",str);

printf("str=%s,the number of# is %d",str,sub(str));
return 0;
}
で実行できるかと思います。
#実証していません。
subの結果を受け取っていない、その結果を表示していないのが原因と思います。

投稿2018/12/25 09:39

syuuichi

総合スコア35

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

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

0

main関数のprintfで個数に対応する変数がないので出ません。
まずはsub関数からmain関数にどうやって数えた個数を渡すのかを復習しましょう。

投稿2018/12/21 07:05

dice142

総合スコア5158

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問