这段代码是什么意思啊
请帮忙注释一下int cmp( char *str1, char *str2 )
{
int i = 0, j = 0;
while( str1 )
{
while( str2 == str1 )
{
i++;
j++;
if( !str2 )
{
return 0;
}
}
j = 0;
i++;
}
return -1;
} str1包含str2 就返回0
否则返回-1 能详细说明一下吗
我不懂 既然是否则返回-1
为什么没有else while( str1 )
{
while( str2 == str1 )
{
i++;
j++;
if( !str2 )
{
return 0;
}
}
j = 0;
i++;
}
这一段是用来检测str1中是否包含str2。
其中,
while( str2 == str1 )
{
i++;
j++;
if( !str2 )
{
return 0;
}
}
这一段是检测 str2 == str1是否成立直到两种情况会退出。
第一种,你应该能想到,str2不等于str1,条件为假,自动跳出。
第二种,str2一直检测到了最后都没有跳出返回0,即if( !str2 )。return的功能是为函数返回一个结果,函数的主要目的就是求结果。当得到这个结果,直接退出整个函数。
return -1;
返回一个标明错误的指示,即-1 #include <stdio.h>
void main()
{
char str;
int cmp( char *str1, char *str2 );
printf("Please enter the website you like the best : ");
scanf("%s", str);
#ifndef CORRECT
#define CORRECT "fishc.com"
#endif
if( cmp( str, CORRECT ) == 0 )
{
printf("\nYeah! You are a smart man!\n\n");
}
else
{
printf("\nYou fool! Man!!\n\n");
}
}
int cmp( char *str1, char *str2 )
{
int i = 0, j = 0;
while( str1 )
{
while( str2 == str1 )
{
i++;
j++;
if( !str2 )
{
return 0;
}
}
j = 0;
i++;
}
return -1;
}
这是完整的代码
这里的STR 和STR1 STR2是什么关系 这是第九章的第三节的内容 str2是不是等于fishc.com
为什么 str1和str2是形参。
str是实参 str2是一个形参,它在没有赋值前只是个指针变量。
只有在cmp( str, CORRECT )中,str2才被赋值fishc.com
我建议你重学一遍函数。c++的话可以看c++ primer plus这本书。
页:
[1]