投稿者さんの欲しいプログラムと違う内容かもしれませんので、そのときは追記等お願いします。
c
1#include<stdio.h>
2
3//もし置き換えた文字列を返す関数を作るなら
4//配列は返り値としては受け取ることができないため
5//代わりにポインタを使って返すことになります
6
7//今回は返り値なしとします
8void replace_string(int number, int length, char strings[number][length], char replace_target[] ) {
9 //いろいろ書きます
10}
11
12int main() {
13
14 int number;
15 int length;
16
17 //配列の初期化に必要です
18 printf("文字列の行数と最大長を打ち込んでください\n");
19 scanf("%d %d", &number, &length);
20 //エンターキー(\n)の入力を取り除く
21 getchar();
22
23 //+2の理由は次のfor文の中で
24 char array[number][length + 2];
25
26 for(int i = 0; i < number; i++) {
27 printf("%d番目に格納する文字列\n" , i + 1);
28 //普通に入力しようとすると末尾に\nと\0が付くので+2
29 fgets(array[i], length + 2, stdin);
30 }
31
32 printf("格納した文字列をすべて表示します\n");
33 for(int i = 0; i < number; i++) {
34 printf("%s\n", array[i]);
35 }
36
37 //置き換えるならこんな感じですかね?
38 //呼び出すことはできました
39 replace_string(number, length, array, "hogehoge");
40
41}
42
参考資料:
fgetsとscanfの挙動の違いについて
https://bituse.info/c/47
2次元配列を引数に加える方法
https://qiita.com/Hiraku/items/babed27bc1d750c2e12d