考察C++ string.compare 函数用法
int m=A.compare (B); //完整的A和B的比较
int n=A.compare(1,5,B,4,2); //"Bcdef"和"AbcdEf"比较
int p=A.compare(1,5,B,4,2); //"Bcdef"和"Ef"比较
int q=C.compare(0,3,D,0,3); //"123"和"123"比较
如果相比较的两个子串相同,compare() 函数返回 0,否则返回非零值。
上代码
#include<cstring>
using namespace std;
int main(void){
int num;
int n,i;
int pos;
int ere;/*自守数个数*/
string str1,str2;
while(cin>>num){
ere=0;
for(i=0;i<=num;i++){
n=i*i;
str1=to_string(n);
str2=to_string(i);
pos=str1.size()-str2.size();
if(! str1.compare(pos,str1.size(),str2,0,str2.size()) ){
ere++;
}
}
cout<<ere<<endl;
}
}