• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c言語 プログラム)

C言語プログラム-文字列の先頭位置を探す関数の実装方法

このQ&Aのポイント
  • C言語プログラムにおいて、文字列ringo[]と文字列mikan[]が与えられ、ringo[]中にmikan[]が含まれる場合には、その文字の先頭の位置を返す関数suikaの実装方法について教えてください。
  • さらに、2つの文字列ringo[]とmikan[]を入力すると関数suikaの値を返すプログラムの作り方も教えてください。
  • 例えば、ringo[]がabcdefghijklmnでmikan[]がabcの場合、先頭の位置である0を返すようなプログラムです。ただし、含まれない場合は-1を返すものとします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#137556
noname#137556
回答No.1

果物シリーズ。たまには書いてみるか。 #include <stdio.h> #include <string.h> int suika(const char *ringo, const char *mikan) {   const char *p = strstr(ringo, mikan);   return p ? (p - ringo) : -1; } int main(int argc, const char *argv[]) {   const char *ringo = "abcdefghijklmn";   const char *mikan = "efghij";   printf ("%d\n", suika(ringo, mikan));   return 0; }

ringo_ring
質問者

お礼

ありがとうございます。 キーボードから入力したら動きました。

ringo_ring
質問者

補足

エラーが出てきて動きません・・・ .cpp(6) : error C3872: '0x3000': この文字を識別子で使用することはできません .cpp(6) : error C3872: '0x3000': この文字を識別子で使用することはできません .cpp(6) : error C2065: '  const' : 定義されていない識別子です。 .cpp(6) : error C2144: 構文エラー: 'char' は';' によって先行されなければなりません。 .cpp(6) : error C2440: '初期化中' : 'const char *' から'char *' に変換できません。 1> 変換で修飾子が失われます。 .cpp(7) : error C3872: '0x3000': この文字を識別子で使用することはできません .cpp(7) : error C3872: '0x3000': この文字を識別子で使用することはできません .cpp(7) : error C2065: '  return' : 定義されていない識別子です。 .cpp(7) : error C2146: 構文エラー: ';' が、識別子'p' の前に必要です。 .cpp(12) : error C3872: '0x3000': この文字を識別子で使用することはできません .cpp(12) : error C3872: '0x3000': この文字を識別子で使用することはできません .cpp(12) : error C2065: '  const' : 定義されていない識別子です。 .cpp(12) : error C2144: 構文エラー: 'char' は';' によって先行されなければなりません。 .cpp(13) : error C3872: '0x3000': この文字を識別子で使用することはできません .cpp(13) : error C3872: '0x3000': この文字を識別子で使用することはできません .cpp(13) : error C2065: '  const' : 定義されていない識別子です。 .cpp(13) : error C2144: 構文エラー: 'char' は';' によって先行されなければなりません。 .cpp(15) : error C3872: '0x3000': この文字を識別子で使用することはできません .cpp(15) : error C3872: '0x3000': この文字を識別子で使用することはできません .cpp(15) : error C3861: '  printf': 識別子が見つかりませんでした .cpp(17) : error C3872: '0x3000': この文字を識別子で使用することはできません .cpp(17) : error C3872: '0x3000': この文字を識別子で使用することはできません .cpp(17) : error C2065: '  return' : 定義されていない識別子です。 .cpp(17) : error C2143: 構文エラー: ';' が'定数' の前にありません。

その他の回答 (1)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

「エラーが出てきて動きません・・・」 だと! エラーを作ったのは、君なんだがな。 コピペしてそのままコンパイルしたんだよね。 ちゃんとキーボードから入力すればいい。 ただし、「エラーが出てきて動きません・・・」 というようでは、キーボードからの入力もうまくできないかもしれない。 ほんとは、デバッグでエラーを直せばいいだけなんだけどな。 たぶん、何行かある先頭の空白部分をtabかなんかにすれば通るんじゃないか? #1回答者様に申し訳ないよね。

ringo_ring
質問者

お礼

ありがとうございます。 キーボードから入力したら動きました。

関連するQ&A