课堂笔记
- 函数指针
#include <iostream>
using namespace std;
int add(int a,int b)
{
return a+b;
}
int multi(int a,int b)
{
return a*b;
}
int main(int argc, char** argv) {
int (*p)(int a,int b);
p=add;
cout<<p(10,20)<<endl;
//p相当于add函数
p=multi;
cout<<p(10,20)<<endl;
return 0;
}
- 字符串初步
#include <iostream>
using namespace std;
#include <string.h>新的头文件,str家族
int main(int argc, char** argv) {
char a='A';//要用单引号括起来才是单个字符型数据
cout<<(void *)&a<<"\t"<<a<<endl;//强制转换类型,否则取不出地址
初始方式一:一个一个数给单引号
char s1[10]={'h','e','l','l','o'};
初始方式二:双引号把所有数括起来
char s2[10]="HELLO1234";
char s3[10];
//s3="hello";//这种写法是将一个地址想要赋值给s3,s3是数组名,是常量 错误×
//字符不能超过10个,最多初始化9个,0字符占一个位置
strcpy(s3,"hello");//copy 把s2参数的值复制给s1
strcat(s3,"123456");
//字符串连接, 要注意不要连接完之后不要超过数组的容量
//虽然输出成功没有报错,但实际上已经超界,会有隐藏风险
cout<<(void *)s1<<"\ts1="<<s1<<endl; //'\0' C++规定其为字符串的结束符
cout<<(void *)s2<<"\ts2="<<s2<<endl; //取到空字符为止会停
cout<<"s3="<<s3<<endl;
cout<<strupr(s3)<<endl;//uppercase 把小写变大写
cout<<strlwr(s2)<<endl;//把大写变小写
cout<<sizeof(s1)<<endl;//求所占字节/大小
cout<<sizeof(s2)<<endl;
注:一个汉字占两个字节
cout<<strlen(s1)<<endl;//求现在字符所占长度
cout<<strlen(s2)<<endl;
cout<<strcmp(s1,s2)<<endl;//compare 对比两数,对比的是字母排序
//-1,s1<s2 0 ,s1=s2 1,s1>s2
小栗子:
char weekday[7][10]={"sunday","monday","tuesday","wednesday","thursday","friday","saturday"};
for (int i=0;i<7;i++)
{ cout<<weekday[i]<<endl;}
return 0;
}
代码测试
#include <iostream>
using namespace std;
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int add(int a,int b)
{
return a+b;
}
int mul(int a,int b)
{
return a*b;
}
int main(int argc, char** argv) {
// int(*p)(int a,int b);
// p=add;
// cout<<p(10,20)<<endl;
// p=mul;
// cout<<p(10,20)<<endl;
char a='A';
cout<<(void*)&a<<"\t"<<a<<endl;
char s1[10]={'A','B','\0','D','E'};
char s2[10]="FG\0HIJ";
cout<<s1<<"\t"<<s2<<endl;
cout<<sizeof(s1)<<endl;
cout<<sizeof(s2)<<endl;
cout<<strlen(s1)<<endl;
cout<<strlen(s2)<<endl;
cout<<strcmp(s1,s2)<<endl;
char weekday[7][10]={"Sunday","Monday","Tuesday","Wensday","Thursday","Friday","Saturady"};//七行十列,一个字符占一列,不够补零
for(int i=0;i<7;i++)
{
cout<<weekday[i]<<endl;
}
char s3[10];
strcpy(s3,"yadB");
cout<<s3<<endl;
strcat(s3,"123");
cout<<s3<<endl;
cout<<strupr(s3)<<endl;
cout<<strlwr(s3)<<endl;
return 0;
}