这个球子字符串的个数的中间部分要背么 有点难理解呀
#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);
}
回复 嘿嘿大人:for(j=0; a[ i+j ] == b[ j ] && b[j]!='\0';j++) //a字符串不能一直拿一个字符和b字符串比较...
{
if(b[j+1] == '\0')
cnt++;
for(j=0; a[ i+j ] == b[ j ] && b[j]!='\0';j++)//就是比较a和b的数组元素是否相等,且字符串b没有结束;
if(b[j+1] == '\0') 这个语句是提前判断是否下一个就是字符串的结束标志,如果是就代表这一次的对比完毕
cnt++;执行计数一次;
这个语句段就是判断b数组的字符串在a字符串里面出现的次数