strlen()是用于计算字符串长度的函数
从第一个字符算起,至“\0”之前的长度(不包括\0)
sizeof()是求所占空间的字节大小
goto语句不可以跨函数使用
strcmp是比较两个字符串的大小的函数
strcmp函数需要引用头文件#include <string.h>
两个字符串比较不可以直接使用==,应该用strcmp函数,例如
strcmp(input,“我是笨蛋”)==0
自定义函数的组成
自定义比较大小函数(引入get_max函数)
int get_max(int x, int y)
{
return(x > y ? x:y);
}
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
//求较大值
//函数的调用
int m = get_max(a, b);
printf("%d\n", m);
return 0;
}
memset函数的用法
这里要引入头文件#include <string.h>
memset(目的字符串的起点,‘要替换成的东西',替换的个数),例如
int main()
{
char arr[] ="hello world";
memset(arr, '*', 5); //arr可以加减改变替换的起点,默认是从第一个开始
printf("%s\n", arr);
return 0;
}
重新定义一个交换函数
void swap(int x, int y)//在这里对a和b重新取了地址,所以这里的x和y无法返回a和b
{
int z = 0;
z = x;
x = y;
y = z;
}
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
printf("交换前:a=%d b=%d\n", a, b);
//a和b叫实参
swap(a, b);
printf("交换后:a=%d b=%d\n", a, b);
return 0;
}
经过运行会发现输入的数字并不会交换
这时因为在定义swap函数时对a和b重新取了地址,所以重新取了地址的x和y无法返回a和b
重新取地址的x,y只是形式参数
当实参传递给形参的时候,形参是实参的一份临时拷贝
对形参的修改不会影响实参
修改后的:
void swap(int* px, int* py)
{
int z = *px; //z=a
*px = *py; //a=b
*py = z; //b=z
}
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
printf("交换前:a=%d b=%d\n", a, b);
swap(&a, &b);
printf("交换后:a=%d b=%d\n", a, b);
return 0;
}
修改后的,a和b连带着地址都一起传给了x和y
这里的a和b就可以进行交换了。