我想创建一个程序,它计算一个数组包含在另一个数组中的时间。
#include <iostream>
#include <vector>
#include <string>
#include <stdexcept>
#include <algorithm>
#include <cmath>
#include <list>
using namespace std;
int func(char one[],char two[]){
int result = 0;
int length_one = sizeof(one)/sizeof(*one) - 1;
int length_two = sizeof(two)/sizeof(*two) - 1;
for(int i = 0;i<length_one;++i){
int temp = 0;
if(one[i] != two[0]) continue;
else{
for(int j = 0;j<length_two;++j){
if(two[j] != one[j+i])break;
else{
temp+=1;
}
}
if(temp == length_two){
result +=1;
}
}
}
return result;
}
int main(){
char one[] = "Hello everybody";
char two[]= "every";
cout << func(one,two);
}
我单独检查了行:int length_two = sizeof(two)/sizeof(*two) - 1;
大小等于5.但是在我的代码中int length_two等于7.怎么可能?