十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
你的if语句后面再加个if语句判断f是否等于1,等于1就不用循环了。你没判断,后面的字符又把你的1改回0了。修改后代码如下
目前创新互联建站已为超过千家的企业提供了网站建设、域名、网页空间、网站托管、企业网站设计、叠彩网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
#include stdio.h
#include string.h
main() {
char a[100],b[100];
int i,j,f=0;
gets(a);//cde
gets(b);//aabbcdefghbcd
for(i=0;istrlen(b);i++){
if(b[i]==a[0]){
for(j=1;jstrlen(a);j++){
if(a[j]==b[i+j]){
f=1;
continue;
}else{
f=0;
break;
}
}
}
if(f==1){
break;
}
}
if(f==1)
printf("YES");
else
printf("NO");
}
使用库函数strstr
#include stdio.h
#include string.h
main() {
char a[100],b[100];
gets(a);
gets(b);
if(strstr(b,a)!=NULL){//第2个参数第1个参数的子串
printf("YES");
}else{
printf("NO");
}
}
int find(char* source, char* target)//source为源字符串,target为子字符串,如找到则返回在源串中的位置,如未找到则返回-1,如果要改为找到返回1,把return i改为return 1;
{
int i,j;
int s_len=strlen(source);
int t_len=strlen(target);
if(t_lens_len)
{
return -1;
}
for(i=0;i=s_len-t_len;i++)
{
j=0;
int flag=1;
if(source[i]==target[j])
{
int k,p=i;
for(k=0;kt_len;k++)
{
if(source[p]==target[j])
{
p++;
j++;
continue;
}
else
{
flag=0;
break;
}
}
}
else
{
continue;
}
if(flag==1)
{
return i;
}
}
return -1;
}
1、首先,定义两个整型变量,保存判断的数和同构串计数。
2、定义3字符串变量,保存用来判断的同构字符串和用来判断包含多少同构字符串的字符串,以及字符串的子串。
3、定义两个整型变量,保存同构字符串中所有字母的数量。
4、重置数组n的值,初值为0。
5、判断字符串的子串,是否为同构子串。
6、如果子串是同构子串,则统计值自加1。
7、运行程序,输入两个字符串后,电脑就会统计出所有同构子串的数量。
#includestdio.h
#includestring.h
int main(){
char str[100],s[100],i,j,flag=0;
printf("请输入主串:\n");
gets(str);
printf("请输入字串:\n");
gets(s);
i=0,j=0;
while(istrlen(str) jstrlen(s)){
if(str[i] == s[j]){//如果字符相同则两个字符都增加
i++;
j++;
}
else{
i=i-j+1; //主串字符回到比较最开始比较的后一个字符
j=0; //字串字符重新开始
}
if(j == strlen(s)){//如果匹配成功
flag=1; //字串出现
break;
}
}
if(flag==1) printf("%s中包含%s\n",str,s);
else printf("%s中不包含%s\n",str,s);
return 0;
}