| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛

问题点数：0 回复次数：3

int fun(char *str,char *substr);

#include<stdio.h>
int fun(char *str,char *substr);
int main()
{ char str[81]="asdasasdfgasdaszx67asdmklo",substr[4]="asd";
int n;
n=fun(str,substr);
printf("n=%d\n",n);
return 0;
}

/* 请在这里填写答案 */

n=4

```#include <stdio.h>
int StrCount(char *str, char *substr); //自定义函数声明。在母字符串中找子字符串的出现次数
int main()
{
char str1[20];                 //初始化数组（母字符串）
char str2[10];                //初始化数组（子字符串）
int count = 0;

printf("Enter str1:\n");
scanf("%s",str1);
printf("Enter str2:\n");
scanf("%s",str2);

count = StrCount(str1, str2); //调用函数
printf("count is %d\n", count);

return 0;
}
int StrCount(char *str, char *substr) //定义函数
{
int number = 0;
char *p; //字符串辅助指针
char *q; //字符串辅助指针
while (*str != '\0')
{
p = str;
q = substr;
while ((*p == *q) && (*p != '\0') && (*q != '\0')) //判断
{
p++;
q++;
}
if (*q == '\0')
{
number++;
}
str++; //从下一个字符开始
}
return number;
}
```

#include <stdio.h>
#include <string.h>

int fun(char *str, char *substr);
int main(void)
{
char str[81] = "asdasasdfgasdaszx67asdmklo", substr[4] = "asd";
int n;
n = fun(str, substr);
printf("n=%d\n", n);
return 0;
}

int fun(char *str, char *substr)
{
int ret = 0;
char temp[4] = { 0 };

for (int i = 0; str[i] != '\0';i++)
{
strncpy(temp, str+i, 3); //每次取3个字符给temp，再与substr比较

if (strcmp(temp, substr) == 0)
ret++;
}
return ret;
}

• 4
• 1/1页
• 1