例如,asdfgasfgasf,as,则输出3。
为平塘等地区用户提供了全套网页设计制作服务,及平塘网站建设行业解决方案。主营业务为成都网站设计、成都网站建设、平塘网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
#include<stdio.h>
#include<stdlib.h>
intmain()
{
charS[100],T[20];
charch1,ch2;
printf("请输入主字符串:\n");
ch1=getchar();
inti=0;
while(ch1!='\n')
{
S[i]=ch1;
i++;
ch1=getchar();
}
printf("请输入要筛选的字符串:\n");
ch2=getchar();
intj=0;
while(ch2!='\n')
{
T[j]=ch2;
j++;
ch2=getchar();
}
intm,n;//m为S的下标,n为T的下标
m=0;
n=0;
intnum=0;//num用于记录选定单词出现的次数
while(m<=i&&n<=j)
{
if(S[m]==T[n])
{
m++;
n++;
}
else
{
m=m-n+1;
n=0;
}
if(n==j)
{
num++;
}
}
if(m==i+1)
{
printf("出现的次数是%d",num);
}
}
扩展资料:
while语句若一直满足条件,则会不断的重复下去。但有时,需要停止循环,则可以用下面的三种方式:
一、在while语句中设定条件语句,条件不满足,则循环自动停止。
如:只输出3的倍数的循环;可以设置范围为:0到20。
二、在循环结构中加入流程控制语句,可以使用户退出循环。
1、break流程控制:强制中断该运行区内的语句,跳出该运行区,继续运行区域外的语句。
2、continue流程控制:也是中断循环内的运行操作,并且从头开始运行。
三、利用标识来控制while语句的结束时间。
定义为:char *p;
完整的程序如下:
#includestdio.h
#includestring.h
void main()
{
int i;
char a[30],ch;
char *p;//这里!这里!这里!这里!这里!这里!这里!这里!这里!这里!
gets(a);//输入带空格字符的字符串,赋予字符数组变量a
ch=getchar();//输入要查找的字符赋予字符变量b
p=strchr(a,ch);//查找字符位置函数
if(p!=NULL)
printf("在字符串%s中以字符%c开始的子串为%s.\n",a,ch,p);
else
printf("在字符串%s中没找到字符%c.\n",a,ch);
}
原理类似于找素数,以下是具体代码(附注释):
#include stdio.h
#include stdlib.h
#include math.h
int SearchString(char s[], char d[]);
main()
{
char s[81]; //储存一串字符
char d[10]; //储存要查找的字符
int flag;
//输入一串字符
printf("Input a string:");
gets(s);
//输入想要查找的字符
printf("Input another string:");
gets(d);
//调用函数,输出结果
flag=SearchString(s,d);
if(flag==-1)
printf("Not found!\n");
else
printf("Searching results:%d\n",flag);
system("pause");
}
//函数功能:在字符数组s中查找子串d,返回d在s中首次出现的位置,若找不到,则返回-1
int SearchString(char s[], char d[])
{
int location=-1;
int i,j;
//第一层循环遍历被查找字符串
for(i=0;s[i]!='\0';i++)
{
//第二层循环遍历要查找的字符,若有不同的字符则退出该循环
for(j=0;d[j]!='\0';j++)
{
if(s[i+j]!=d[j])
break;
}
//判断第二层循环是否全部执行,若全部执行则表示字符相等,保存位置
if(d[j]=='\0')
{
location=i+1;
break;
}
}
return location;
}
#include stdio.h
#include stdlib.h
#include string.h
char *sub(char *s,int st,int len)
{char *s1;
int i;
s1=(char*)malloc(len);
for(i=0;ilen;i++)s1[i]=s[st+i-1];
s1[i]='\0';
return s1;
}
int main()
{int n,i,j;
char s[200];
scanf("%d%*c",n);
while(n--)
{printf("input a string:");
gets(s);
printf("i=");
scanf("%d",i);
printf("j=");
scanf("%d%*c",j);
if(i+jstrlen(s))printf("Error\n");
else printf("%s\n",sub(s,i,j));
}
return 0;
}