
c语言程序问题
c语言程序问题#include<stdio.h>main(){charstr[80],sub[80];intn;gets(str);gets(sub);printf("%...
c语言程序问题#include<stdio.h>
main()
{char str[80],sub[80];
int n;
gets(str);gets(sub);
printf("%d\n",count(str,sub));
}
int count(char *str,char *sub)
{int i,j,k,num=0;
for(i=0;【1】;i++)
for(【2】,k=0;sub[k]==str[j];k++,j++)
if(sub[【3】])=='\0') {num++;break;}
return num;
}
【1】A)str[i]==sub[i] B)str[i]!='\0' C)str[i]=='\0' D)str[i]>sub[i]
【2】A)j=i+1 B)j=i C)j=0 D)j=1
【3】A)k B)k++ C)k+1 D)++k
这程序有问题吧 展开
main()
{char str[80],sub[80];
int n;
gets(str);gets(sub);
printf("%d\n",count(str,sub));
}
int count(char *str,char *sub)
{int i,j,k,num=0;
for(i=0;【1】;i++)
for(【2】,k=0;sub[k]==str[j];k++,j++)
if(sub[【3】])=='\0') {num++;break;}
return num;
}
【1】A)str[i]==sub[i] B)str[i]!='\0' C)str[i]=='\0' D)str[i]>sub[i]
【2】A)j=i+1 B)j=i C)j=0 D)j=1
【3】A)k B)k++ C)k+1 D)++k
这程序有问题吧 展开
2个回答
展开全部
这个程是用来统计字符串str中子串sub的数量的,但是程序当中有点小问题:
1.main函数最好注明返回值类型和参数类型以及return 0;
2.int n;的定义没有实际意义
【答案】
【1】B)str[i]!='\0'
【2】B) j=i
【3】C)k+1
修改后完整代码(含注释)和运行截图如下:
#include<stdio.h>
#include<string.h> // 有的编译器gets()函数包括在<string.h>中
int main(void)
{
char str[80], sub[80];
gets(str);
gets(sub);
printf("%d\n", count(str, sub));
}
int count(char *str, char *sub)
{
int i, j, k, num = 0;
for (i = 0;str[i] != '\0'; i++) // 如果str字符串没有结尾就继续查找子串
/*如果当前字符仍然和子串sub中字符对应一致,则继续循环*/
for (j = i, k = 0; sub[k] == str[j]; k++, j++)
if (sub[k + 1] == '\0') // 判断是否到子串sub结尾
{
num++;// 遇到子串sub结尾说明str已经有一个子串,则num+1
break;
}
return num;
}
纯手打,望采纳!
更多追问追答
追问
但我为什么不对
运行
展开全部
int count(char *str,char *sub);//统计子串sub在母串str中的出现次数
void main()
{
char str[80],sub[80];
int n;
gets(str);
gets(sub);
printf("%d\n",count(str,sub));
}
int count(char *str,char *sub)
{
int i,j,k,num=0;
for(i=0;str[i]!='\0';i++)//母串没有结束就继续循环
for(j=i,k=0;sub[k]==str[j];k++,j++)//子串中的每个字符都要与母串中的相同
if(sub[k]=='\0') //子串比较完毕
{
num++;
break;
}
return num;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |