任意输入2个字符串,求计算第二个字符串在第一个字符串中出现的次数。
用c++写了程序,但是计算结果不对。求教!
int main(void)
{
char str1[20],str2[20],*p1,*p2;
int sum=0;
cout<<"intput two strings"<<endl;
cin>>str1;
cin>>str2;
p1=str1;
p2=str2;
while (*p1!='\0')
{
if(*p1==*p2)
{ while((*p1=*p2)&&(*p2!='\0'))
{
p1++;
p2++;
}
}
else
p1++;
if(*p2=='\0')
sum=sum+1;
p2=str2;
}
cout<<sum;
return 0;
}
1.å¯éè¿ strstr å½æ°ï¼æ¥æ¾åå符串ãæ¾å°åå³é空ï¼ç¶åå ä¸åå符串å移ï¼åè¿è¡æ¥æ¾æ²¡ï¼ç´å°æåè¿å为空ã
2.char *strstr( const char *str1, const char *str2 );
åè½ï¼å½æ°è¿åä¸ä¸ªæéï¼å®æåå符串str2
é¦æ¬¡åºç°äºå符串str1ä¸çä½ç½®ï¼å¦æ没ææ¾å°ï¼è¿åNULLã