前回の質問でstrstr関数の自作を試みたのですが、色々だめだったらしいので
新しくプログラムをたてたのですが、セグメントエラーが出るのでどうしたらよいでしょうか。
可能な限り改善、改良できるところをあげてほしいです。
str1にstr2が複数含まれる場合は最初の先頭位置のみわかればよいです。
一応入れてませんがmain関数の方に
strlen(str1)<strlen(str2)
のif文を追加するつもりです。
C
1#include<stdio.h> 2 3char *strPointSearch(char *str1,char *str2); 4 5int main(void) 6{ 7char str1[]={},str2[]={},point; 8 9printf("str1を入力---->"); 10gets(str1); 11printf("str2を入力---->"); 12gets(str2); 13 14point=*strPointSearch(str1,str2); 15printf("%d番目\n",point); 16 17return 0; 18} 19 20char *strPointSearch(char *str1, char *str2) 21{ 22int i, j, k; 23 24if(*str2 == '\0') 25return str1; 26else 27{ 28for(i = 0;*(str1 + i) != '\0';i++) 29{ 30if(*(str1 + i) == *str2) 31{ 32for(j = i, k = 0;*(str1 + j) == *(str2 + k);j++, k++); 33if(*(str2 + k) == '\0') 34return str1 + i; 35} 36} 37return NULL; 38} 39}
回答4件
あなたの回答
tips
プレビュー