编写一个函数,已知一个字符串,比如asderwsde,寻找其中的一个子字符串比如sde的个数,如果没有返回0,有的话返回子字符串的个数。函数的原型为
int num_of_substring(const char* string,const char *substring);
利用strncmp
函数名: strncmp
功 能: 串比较
用 法: int strncmp(char *str1, char *str2, int maxlen);
说明:此函数功能即比较字符串str1和str2的前maxlen个字符。
如果前maxlen字节完全相等,返回值就=0;在前maxlen字节比较过程中,如果出现str1[n]与str2[n]不等,则返回(str1[n]-str2[n])。
利用strstr
包含文件:string.h
函数名: strstr
函数原型:extern char *strstr(char *str1, char *str2);
功能:查找完全匹配的子字符串。
返回值:返回该位置的指针,如找不到,返回空指针。
代码利用strstr
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int num_of_substring(const char* string,const char *substring)
{
int count = 0, length = strlen(substring);
const char *p = string;
while( (p = strstr(p, substring)) != NULL )
{
//puts(p);//test
p += length;
count++;
}
return count;
}
int main()
{
char a1[] = "asderwsdejeifsderjwapfsdeejoirjwae";
char a2[] = "sde";
printf("%d\n", num_of_substring(a1, a2));
return 0;
}