在C语言中 strchr 和 strstr函数都被包含在<string.h>头文件中,也就是要调用它们时要在程序前面包含<string.h>头文件,也就是写这个语句:#include<string.h>
strchr函数原型:char * strchr(char * str, int ch); 功能就是找出在字符串str中第一次出项字符ch的位置,找到就返回该字符位置的指针(也就是返回该字符在字符串中的地址的位置),找不到就返回空指针(就是 null)。
strstr 函数原型: char * strstr(char * str1,char * str2);功能就是找出在字符串str1中第一次出项字符串str2的位置(也就是说字符串sr1中要包含有字符串str2),找到就返回该字符串位置的指针(也就是返回字符串str2在字符串str1中的地址的位置),找不到就返回空指针(就是 null)。
它们一个是求一个字符在字符串中得位置,另一个是求一个字符串在另一个字符串中的位置。
#include<iostream>
using namespace std;
int main()
{
int compare(int a, int b);
int a[2] = {1,2};
cout<<compare(a[0], a[1])<<endl;
}
int compare(int a, int b)
{
return (a>b)? a : b;
}
因为形参是在函数被调用时临时分配存储单元的,不可能为一个数组元素单独分配存储单元(数组是一个整体,在内存中占连续的一段存储单元)
#include<iostream>
using namespace std;
int main( )
{
int compare(int a[1], int b[2]);
int a[1] = {1};
int b[2] = {2, 3};
cout<<compare(a, b)<<endl;
}
int compare(int a[1], int b[2])
{
return ( ( (a[0]>b[0])? a[0] : b[0] )>b[1] ) ? ( (a[0]>b[0])? a[0] : b[0] ) : b[1];
}