1. 字符型数组和字符串串传参
2.指针函数
指针函数:指针函数是函数,函数返回值是指针。
注意:不能返回局部变量的地址,指针函数可以让函数的返回值作为下一个函数的参数,实现嵌套调用。
练习:
1,封装函数分别实现strlen, strcpy,strcat和strcmp的功能。
#include<stdio.h>
int MyStrLen(char *pstr1)
{
int cnt = 0;
while (*pstr1 != '\0')
{
pstr1++;
cnt++;
}
return cnt;
}
char *MyStrCpy(char *pstr1, char *pstr2)
{
char *pstart = pstr1;
while (*pstr2 != '\0')
{
*pstr1 = *pstr2;
pstr2++;
pstr1++;
}
pstr1 = '\0';
return pstart;
}
char *MyStrCat(char *pstr1, char *pstr2)
{
char *pstart = pstr1;
while (*pstr1 != '\0')
{
pstr1++;
}
while (*pstr2 != '\0')
{
*pstr1 = *pstr2;
pstr2++;
pstr1++;
}
*pstr1 = '\0';
return pstart;
}
int MyStrCmp(char *pstr1, char *pstr2)
{
while (*pstr1 == *pstr2)
{
if (*pstr1 == '\0')
{
return 0;
}
pstr1++;
pstr2++;
}
return *pstr1 - *pstr2;
}
int main(void)
{
char str1[32] = {0};
char str2[32] = {0};
char str3[32] = {0};
int ret = 0;
gets(str1);
gets(str3);
ret = MyStrLen(str1);
printf("str1长度:%d\n", ret);
MyStrCat(str1, MyStrCpy(str2, str1));
printf("str2 = %s\nstr1 = %s\n", str2, str1);
ret = MyStrCmp(str2, str3);
printf("str2和str3比较结果:%d\n", ret);
return 0;
}
运行结果