1、getline(cin,str,'#'),str是string类型,#那个位置是单引号,循环使用getline的话最后要加cin.get()消除残留的换行符‘\n’;
gets(str),gets(char *str),str是char数组,输入带空格的字符串,换行结束
2、#include <math.h>
sqrt(num)开方
pow(10,2) 10的2次方
3、使用strcmp(const char *s1,const char * s2),这里面只能比较char类型字符串,不能使用string类型,头文件需引入<string.h>,后面加.h ,
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:"A"<"B" "a">"A" "computer">"compare"
//字符串匹配
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s1,s2;
int n;
cin>>n;
while(n--)
{
cin>>s1>>s2;
unsigned int m=s2.find(s1,0);
int num=0;
while(m!=string::npos)
{
num++;
m=s2.find(s1,m+1);
}
cout<<num<<endl;
}
}
//求约数个数
#include <iostream>
#include <math.h>
using namespace std;
int main(){
int n;
while(cin>>n){
int i,j,a[1000],b[1000];
for(i=0;i<n;i++){
cin>>a[i];
int temp=0;
for(j=1;j<sqrt(a[i]);j++){
if(a[i]%j==0) temp+=2;
}
if(pow(j,2)==a[i]) temp++;
b[i]=temp;
}
for(i=0;i<n;i++){
cout<<b[i]<<endl;
}
}
return 0;
}