全部问题 > 当前问题

这个球子字符串的个数的中间部分要背么 有点难理解呀

#include<stdio.h>
#include<string.h>
void main()
{

char a[80] = "tyiunabtjagxzbcabcceeabrgtuABctyABtabuayb";

char b[3] = "ab"; 


int i =0,j,k,count = 0; // count 做统计 a字符串的实际字符个数..


int cnt =0; // 统计子字符的个数 .. 

while(i<80)
{
if(a[i]!='\0') 
count++; 
i++; 

}

printf("父字符的个数是%d\n",count);


for(i =0 ; i <count; i++)
{
for(j=0; a[ i+j ] == b[ j ] && b[j]!='\0';j++) //a字符串不能一直拿一个字符和b字符串比较...
{
if(b[j+1] == '\0') 
cnt++;
//break; //不需要.

}
}
printf("子字符的个数是%d\n",cnt);

}

小青年 2015-9-11 10:06:17

共 8 个回答

嘿嘿大人 2015-9-11 10:08:37

具体是那一段?

小青年 2015-9-11 10:12:08

回复 嘿嘿大人for(j=0; a[ i+j ] == b[ j ] && b[j]!='\0';j++) //a字符串不能一直拿一个字符和b字符串比较...
{
if(b[j+1] == '\0') 
cnt++;


最佳答案

嘿嘿大人 2015-9-11 10:22:53

for(j=0; a[ i+j ] == b[ j ] && b[j]!='\0';j++)//就是比较a和b的数组元素是否相等,且字符串b没有结束;

if(b[j+1] == '\0') 这个语句是提前判断是否下一个就是字符串的结束标志,如果是就代表这一次的对比完毕
cnt++;执行计数一次;

这个语句段就是判断b数组的字符串在a字符串里面出现的次数

小青年 2015-9-11 10:24:35

看懂了  不过让我写的话我还是写不出来

小青年 2015-9-11 10:24:52

回复 嘿嘿大人:看懂了  不过让我写的话我还是写不出来


嘿嘿大人 2015-9-11 10:26:00

回复 小青年:这不是你自己写的么?按照题目要求分析撒,主要还是能熟悉的运用语句,多写几次就会好些了

小青年 2015-9-11 10:27:02

回复 嘿嘿大人:这个我找的答案 我知道了  谢谢

嘿嘿大人 2015-9-11 10:28:36

回复 小青年:不用谢,加油吧,嘿嘿

问题来自: 改错题真题