文字列の中から文字列を検索しポインタを返却
という感じの関数です
GCCでコンパイルしたら警告出ます
const charをcharとして戻り値に入れてるからだと思いますが
char *Strstr(const
char *s1, const
char *s2) {
int s1l =
0, s2l = 0;
int i1 = 0,
i2 = 0;
if (*s1 == '\0') { return(0);
}
if (*s2 == '\0') { return(s1);
}
while(*(s1
+ s1l) != '\0') { s1l++; }
while(*(s2
+ s2l) != '\0') { s2l++; }
if (s1l
< s2l) { return(0);
}
while(*(s1
+ i1) != '\0') {
if
(*(s1 + i1) == *(s2 + i2)) {
i2++;
if
(*(s2 + i2) == '\0') { return(s1 + i1 - i2); }
} else
{ i2 = 0; }
i1++;
}
return(0);
}
なお変数型等はcharやintなので
環境に合わせて書き換えてください
0 件のコメント:
コメントを投稿