#include<stdio.h>
#include<stdlib.h>
int findsub(char*src,char*s)
{
char*ptr=src,*p=s;//定義兩個指針
char*ptr2=src+strlen(src),*prev=NULL;//ptr2為src的末位置指針
int len=strlen(s),n=0;//子串的長度和計數器
for(;*ptr;ptr++)//循環整個串
{
if(ptr2-ptr<len)//如果壹開始子串就大於src,則退出
break;
for(prev=ptr;*prev==*p;prev++,p++)//尋找第壹個相等的位置,然後從此位置開始匹配子串
{
if(*(p+1)==0||*(p+1)==10)//如果已經到了子串的末尾
{
n++;//自增
p=s;//重新指向子串
break;//退出
}
}
}
return n;
}
int main(void)
{
char a[81],b[81];//定義兩個字符數組
printf("輸入原字符串:");
fgets(a,81,stdin);//輸入
printf("輸入子字符串:");
fgets(b,81,stdin);
printf("找到:%d\n",findsub(a,b));
system("pause");
return 0;
}
擴展資料:
①printf()函數是格式化輸出函數,壹般用於向標準輸出設備按規定格式輸出信息。
格式輸出,它是c語言中產生格式化輸出的函數(在stdio.h中定義)。用於向終端(顯示器、控制臺等)輸出字符。格式控制由要輸出的文字和數據格式說明組成。
要輸出的文字除了可以使用字母、數字、空格和壹些數字符號以外,還可以使用壹些轉義字符表示特殊的含義。
簡單點理解就是,在壹段程序中妳正確使用該函數,可以在該程序運行的時候輸出妳所需要的內容。
②printf函數是壹個標準庫函數,它的函數原型在頭文件“stdio.h”中。但作為壹個特例,不要求在使用printf函數之前必須包含stdio.h文件。
printf()函數的調用格式為:printf("<格式化字符串>",<參量表>)。
其中格式化字符串用於指定輸出格式。格式控制串可由格式字符串和非格式字符串兩種組成。