strncmp strstr____asderwsde,寻找其中的一个子字符串比如sde的个数
编写一个函数,已知一个字符串,比如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; }