文字列str1から文字列sre2を探索し、その先頭位置を表示するプログラムを作りたいのですが、うまくいきません。下のプログラムを考えてみたのですがうまくいきません。あくまで、関数わけする前のプログラムしか考えていません。関数わけは、プログラムが正しい実行結果を得てからするつもりです。
ちなみにプログラムの条件として
(1) 文字列str2が見つかったら先頭文字位置を出力する(例:cdeは3番目)
(2) 文字列str2が見つからなかったら、関数内でNULLを返し、if文によりなかったことを出力する
(3) 文字列str2が複数見つかった場合は、最初に見つかったもののみで良い(全部でも良いが、最初+1番目以降のみはNG)
可能な限り回答お願いします。
C
1#include <stdio.h> 2#define STR_LENGTH 256 // 文字列の最大長 3main() 4{ 5// 文字列 6// 探索する文字 7// 文字が含まれる回数 // 文字が含まれる位置 // カウンタ変数 8char string[STR_LENGTH]; 9char letter; 10int count; 11int position[STR_LENGTH]; 12int i; 13 14printf(" 文字列str1の入力 : "); 15scanf("%s", string); 16printf(" 文字列str2の入力 : "); 17scanf("%c", &letter); 18for(i = 0, count = 0; i < STR_LENGTH && string[i] != '\0'; i++) { 19if(string[i] == letter) { 20 position[count] = i + 1; 21count++; 22 } 23} 24printf(" [%c] は %d 回含まれています。\n", letter, count); printf(" 含まれる位置は、\n"); 25for(i = 0; i < count; i++) 26printf(" %d ", position[i]); printf("\n の位置です。\n"); 27return 0; 28}

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。