c语言—编程统计字符串s(不是字母s是某个子串)在字符串str中出现的次数
c语言—编程统计字符串s(不是字母s是某个子串)在字符串str中出现的次数要用数组,指针不要用...
c语言—编程统计字符串s(不是字母s是某个子串)在字符串str中出现的次数要用数组,指针不要用
展开
3个回答
展开全部
#include<stdio.h>
#include<string.h>
int main()
{
char s[10],str[1000],c;
int i,j,t=0,l1,l2,num=0;
gets(s);//录入要找的字符串
gets(str);//录入大串
l1=strlen(s); //测长度
l2=strlen(str); //测长度
for(i=0;i<l2;i++)//大串逐字符往后查
{for(j=0;j<l1;j++)//小串逐字符往后查
if(str[i+j]==s[j])//!关键点!循环检查小字符串长度的字符是否一致,如果一致标记记1,如果碰到不一样,标记记0,并跳出当前小串检测。
t=1;
else
{t=0;
break;
}
if(t==1)//小串长度检测完毕,如果标记为1,也就是说小串的每个字符都和大串i开始的后面几位完全相同,计数加1.
{num++;
t=0;
}
}
printf("%d",num);//输出最终计数
return 0;
}
已编译通过测试。
#include<string.h>
int main()
{
char s[10],str[1000],c;
int i,j,t=0,l1,l2,num=0;
gets(s);//录入要找的字符串
gets(str);//录入大串
l1=strlen(s); //测长度
l2=strlen(str); //测长度
for(i=0;i<l2;i++)//大串逐字符往后查
{for(j=0;j<l1;j++)//小串逐字符往后查
if(str[i+j]==s[j])//!关键点!循环检查小字符串长度的字符是否一致,如果一致标记记1,如果碰到不一样,标记记0,并跳出当前小串检测。
t=1;
else
{t=0;
break;
}
if(t==1)//小串长度检测完毕,如果标记为1,也就是说小串的每个字符都和大串i开始的后面几位完全相同,计数加1.
{num++;
t=0;
}
}
printf("%d",num);//输出最终计数
return 0;
}
已编译通过测试。
2016-12-16
展开全部
int substrCount(const char* str, const char* sub)
{
int count = 0;
const char * p = str;
while (*p != '\0')
{
p = strstr(p, sub);
if (p==NULL)
break;
count += 1;
p += strlen(sub);
}
return count;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
strstr函数搞定
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询