笔记1

1>输入e2 e4

    while(scanf("%c%d %c%d%c",&x1,&y1,&x2,&y2,&xn)!=EOF)

    while(scanf("%c %d %c %d",&Y1,&X1,&Y2,&X2) != EOF)  

    while(scanf("%c%c%c%c%c%*c,&x1,&y1,&space,&x2,&y2)!=EOF)

2>输入

      3 5

      *@*@*

      **@**

      *@*@*

      while(scanf("%d%d",&m,&n),m+n)

      {

          getchar();//每次输入m,n后吃掉换行符

          for(i=0;i<m;i++)

            gets(map[i]);

            //scanf("%s",map[i]);  

      }

3>错误`sort' undeclared...

   一开始一直郁闷,加了头文件#include<algorithm>还是没用,结果是没写using namespace std;

 

4>Runtime Error

  可能是由于数组开的太小的缘故

 

5>memset在初始化int类型数据时,只能初始化-1和0时才能得到原值

  数组置零:如int num[10];

              memset(num,0,sizeof(num));

              或 int num[10]={0};

 

6>#include<algorithm> swap(a,b) 交换a,b的次序一般用于数组swap(a[1],a[2])

 

1>#include <cmath> pow(底数,幂次)其中幂次可为小数表示开方1.0/ a  abs是求int类型的绝对值
fabs是求float类型的绝对值
labs是求long类型的绝对值

2>#include<iomanip>    setprecsion(n)是格式控制符,precision(n)是流对象的成员函数,用法分别如下:
如要输出圆周率的pi=3.141592四位小数,
cout<<setprecision(4)<<pi;
cout.precision(4);cout<<pi;

3>#include <algorithm> sort:  int a[20]={2,4,1,23,5,76,0,43,24,65};  sort(a,a+20)  数组取模sizeof(a);

4>C/C++的特性之一可以用非零整型数表达布尔型的true。如:while(1)
5>tolower:str1和str2都是字符指针,所以*str1和*str2都是字符
tolower是将字符变为小写字母的函数,也就是让str1和str2指向的字符转为小写
具体两个字符相减,就是其ASCII码值相减,比如'a' = 97, b='98'
'a'-'b' = -1
! (ret = tolower(*str1) - tolower(*str2)) 表示str1和str2指向的字符是否相同(不区分大小写),
相同则为真,否则ret !=0,即不相同
! (ret = tolower(*str1) - tolower(*str2)) && *str2 是判断前述是否相同以及str2所指向字符所在的字符串是否结束C++用substr()函数消除前后空格 C++用substr()函数消除前后空格
6>C++用substr()函数消除前后空格
 find_first_of: 查找控制字符序列中第一个出现在操作字符序列中的字符的位置,并返回该位置; 
find_first_not_of:查找控制字符序列中第一个不出现在操作字符序列中的字符的位置,并返回该位置; 
find_last_of: 查找控制字符序列中最后一个出现在操作序列中的字符的位置,并返回该位置; 
find_last_not_of: 查找控制字符序列中最后一个不出现在操作字符序列中的字符位置,并返回该位置;
7>data()函数返回指向自己的第一个字符的指针.
8>return 0是正常退出,return 非零 是异常退出,这是返回给控制台的,不在你编的程序的控制范围内,是给操作系统识别的,对你的程序无影响。
一般程序中,对于 int 函数都会在末尾 return 0;但有的程序就有 return -1 和 return 1;
根据所定义函数的需求返回不同的值。

一般0和-1或者0和1使用

0和-1使用时:
0一般表示成功执行
-1一般表示不成功

0和1使用时:
1真
0假

9>数组定义int *a=new int[n]或int a[n]
10>#include <string.h> void *memset(void *s,int c,size_t n)
总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。

11>EOF表示一个流读结束了、对于一个文件来说、读尽最后一个字节算作结束、对于标准输入(也就是一般的键盘输入)
需要人为的产生一个EOF告诉系统输入结束了、EOF: end of file是一个常量。一般定义为-1
12>#include <cstdio> pair<int,int>a[n] a[i].first a[i].second ///pair<int,int>tmp tmp.first tmp.second
13>while(cin>>n>>i,n||i)表示当输入的i或n不大于零时退出
while(cin>>n,n){ .......}return 0;当输入n不大于零时直接退出整个程序
14>unsigned char是无符号字节型,char类型变量的大小通常为1个字节(1字节=8个位),且属于整型。整型的每一种都有无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。
无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的数据,比如16位系统中一个int能存储的数据的范围为-32768~32767,而unsigned能存储的数据范围则是0~65535。

同样,在32位系统中一个char类型一般为8个bit,所以能存储的数据范围为-128~127,而unsigned char则是0~255,字符型所存储的数据是用来表示字符的,例如ASCⅡ或Unicode。

关于char的符号(选自thinking in C++ 2nd vol1):
signed is the default and is only necessary with char; char may or may not default to signed. By specifying signed char, you force the sign bit to be used.

译:有符号类型是默认(指的是对于其他整型来说)的类型并且仅对于char来说才是必须的。
char有可能是signed也有可能是unsigned(我想这可能取决于编译器或具体实现)。
但通过显式地指定一个char为signed,你就迫使其成为有符号的字符型(水平太烂译的不好请见谅)。
15>char ch[2][3]={"123","45"};
如下:
char[2][3]={'1','2','3',
  '4','5','\0'  
  }
其中的'\0'为转义字符,ASCII值为0
代表一串字符串的结束
if(ch[i][j]>'\0')
是说如果字符的ASCII值大于0
'\0'在c语言的字符串中表示字符串的结尾,if(ch[i][j]>'\0')判断该字符是否是字符串的结尾符

15>printf("%d",n>>1);表示n/2取整

 

 

16>C++中^

 

按位亦或..
如1^1=0,0^0=0,1^0=1,0^1=1; 

^=
就好比是+=吧

比如 a+=b
a = a+b

a^=b
a = a^b 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值