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

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

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

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

Q&A

1回答

1212閲覧

考えましたがわかりません。

kohaku_

総合スコア0

C

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

0グッド

2クリップ

投稿2020/07/29 10:39

編集2020/07/29 11:20

#include<stdio.h>
int search_str(char *s)
{
int i=0;

return (i+1);
}

int main(void)
{
char str[100],ch[99];

printf("Input string:");
scanf("%s", str);
printf("Input character:");
scanf("%s", cha);

printf("%d\n",search_str(str, cha));

return(0);
}

コード 色々と試し上記のようなプログラムをつくったのですが、作動しません。 どうかご教授ください。

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

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

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

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

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

episteme

2020/07/29 10:44 編集

searchの第二引数:char* c には何を与えるんですか? 連続した2文字が最初に出現する位置を返すのであれば、入力文字列だけ与えればよくない?
kohaku_

2020/07/29 10:47

指定する文字を入力します。 入力した文字列 appplelele 指定文字 le とすると出力が5になるようにしたいです
dodox86

2020/07/29 10:56

見つからなかったら何を返すのですか? そもそも、質問文中に挙げられたコードは考えすぎな気がします。(ややこしいことになってる感)
kohaku_

2020/07/29 10:59

回答ありがとうございます。見つからなかったら、何も返さなくてもよいです。
episteme

2020/07/29 11:05

何も返さないってのは無理。 それ呼んだ側が 見つからなかった ことをどうやって判断するんです?
kohaku_

2020/07/29 11:07

そこについては考えなくて良いみたいです。
episteme

2020/07/29 11:13 編集

見つからなかったらプログラムがいきなりぶっ飛んでもいいんですか? んなわけねーだろ。
kohaku_

2020/07/29 11:10

何も表示しなくて良いです。
episteme

2020/07/29 11:12

なにも表示しない ためには 見つからなかったことが判断できにゃなりません。
dodox86

2020/07/29 11:32

あれ? 質問文中のsearch関数処理が消えてる。なぜに??(意図不明です)
dodox86

2020/07/29 11:36

と言いますか、連続した2文字の話はどこへ行ったのか。今のご質問内容ではもはや何がやりたいのか分かりません。ですので回答を断念しました。
guest

回答1

0

指定した2文字を関数 strstr() で検索してはいかがでしょうか。
※ strstr は #include <string.h> すれば使えます。

C

1#include <stdio.h> 2#include <string.h> 3 4// 文字列 s から c を探し、その位置を(1-originで)返す 5// 見つかんないなら 0 を返す 6int search(char* s, char* c) { 7 char* p = strstr(s, c); 8 return p == NULL ? 0 : (int)(p - s + 1); 9} 10 11int main(void) { 12 char input[100] = "appplelele"; // scanfは省略 13 char target[10] = "le"; 14 15 int n = search(input, target); 16 if ( n != 0 ) { 17 printf("found at %d\n", n); 18 } else { 19 printf("not found\n"); 20 } 21 return 0; 22}

投稿2020/07/29 10:50

編集2020/07/29 11:03
episteme

総合スコア16612

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

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

kohaku_

2020/07/29 10:53

文字列、指定文字は入力できるようにしたいです。
kohaku_

2020/07/29 10:54

search関数と指定されていて、strstrが使用できません、、。
episteme

2020/07/29 11:03

search の中から strstr 呼べばいいじゃん(追記しました)。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問