献给莹莹
1.一些记录
1.C++将数组名解释为其第一个元素的地址。
cookies == & cookies[0]
该判断将输出true
相似的还有:
arr[i] == *(arr+i)
&arr[i] == arr+i
以上判断结果均为true
2.一些输入的区别(cin、cin.get()、cin.getline()、getline()、gets())
-
2-1 cin
“>>” 是会过滤掉不可见字符(如 空格 回车,TAB 等) ,如果不想过滤,可以使用:
cin>>noskipws>>input[j]
noskipws即no skip whitespace(空白)
-
2-2 cin.get()
cin.get(字符数组名,接收字符数目)
用来接收一行字符串,可以接收空格
注意:对于cin.get(test,10)实际上只能接收9个字符,因为需要一个‘\0’来结尾
或者也可以用来接收一个字符
cin.get(字符变量名)
-
2-3 cin.getline()
cin.getline()有三个参数
cin.getline(接受字符串,接受个数,结束字符)
例如
cin.getline(m,5,'a');当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk
-
2-4 getline
接受一个字符串,可以接收空格并输出,需包含“#include<string>”
string str;
getline(cin,str);
cout<<str<<endl;
也有三个参数,即也可以控制结束字符
-
2-5 gets()
cin不接受空格,TAB等键的输入,遇到这些键,字符串会终止
而gets()则接受连续的输入,包括空格,TAB
char str[20];
gets(str);
cout<<str<<endl;