递归函数
- 本质:自己调用自己
#include<stdio.h>
int add(int num);
int main()
{
printf("Sum = %d\n",add(3));
return 0;
}
//小例子:求1-100的和,使用递归函数做
/*****************************
* 函数名:int add(int num)
* 函数功能:求1-100的和,使用递归函数做
* 参数:
* num:要累计到的最大的值
* 返回值:累计的和
* ****************************/
int add(int num)
{
if(num == 1)
{
return 1;
}
return num + add(num-1);
}
字符串处理函数库
#include <string.h>
strcpy函数
#include <stdio.h>
#include <string.h>
/*******************************************************
头文件:#include <string.h>
函数名:char *strcpy(char *dest, const char *src);
功能:把src所指向的字符串复制到dest所指向的空间中,'\0'也会拷贝过去
参数:
dest:目的字符串首地址
src:源字符首地址
返回值:
成功:返回dest字符串的首地址
失败:NULL
注意:如果参数dest所指的内存空间不够大,可能会造成缓冲溢出的错误情况。
*********************************************************/
int main()
{
//数组名不可以直接赋值,可以赋值的地方只有定义时初始化的时候
//所以我们只能使用内部元素赋值,访问内部元素最好的方式是循环变量
//而我们的string库里面的方法就是使用循环操作
char str_1[1024] = "hello world";
char str_2[1024] = "12341251343415234";
printf("str_1 = %s\n",str_1);
printf("str_2 = %s\n",str_2);
#if 0 //手动循环拷贝
for(int i = 0; i <= strlen(str_1);i++)
{
str_2[i] = str_1[i];
}
printf("str_1 = %s\n",str_1);
printf("str_2 = %s\n",str_2);
#endif
#if 1 //调用系统库的strcpy拷贝
strcpy(str_2,str_1);
printf("str_1 = %s\n",str_1);
printf("str_2 = %s\n",str_2);
#endif
#if 0 //调用自己写的的smy_trcpy拷贝
char *my_strcpy(char