//検索 int srch(char* org, char* match){ // 方針:1文字目を探す→全一致かどうか確認する int orglength = Strlength(org); int matchlength = Strlength(match); int scm = orglength - matchlength + 1; //サーチ回数 int srchresult = 0; //発見回数 // printf("%s:%d\n", org, orglength); // printf("%s:%d\n", match, matchlength); if (scm <= 0) { return 2; //検索文字列が対象文字列より長い } int i; int j; for(i = 0; i < scm; i++){ if (org[i] == match[0]) { for(j = 0; j < matchlength; j++){ //1文字目の一致 if (org[i+j] != match[j]) { break; //ハズレ } if ((org[i+j] == match[j]) & (j == matchlength - 1)) { srchresult++; //発見 break; } } } } if (srchresult == 1){ printf("文字列\"%s\"が見つかりました。\n", match); }else if(srchresult > 1){ printf("文字列\"%s\"が%d個見つかりました。\n", match, srchresult); }else{ printf("文字列は見つかりませんでした。\n"); } return 0; }
//copies the values of the 2nd parameter to the values of the first parameter also returns the string length int Strcopy( char *first, const char *second ) { int len = Strlength( second ); for( int i=0; i<len; i++ ) { *first = *second; second++; first++; } *first = '\0'; return len; }