选择与循环
选择语句
if
语句
if(){
GRAM
}
else {
GRAM
}
switch
语句
switch(){
case 常量表达式1:
语句序列1;
break;
case 常量表达式2:
语句序列2;
break;
.....
default:
语句序列n+1;
}
注意事项:
case
值不可相等- 每个
case
和default
语句后可包含多条语句,无需使用'{}'
循环语句
for
循环
for(int ; ;){
}
while
循环
while(条件表达式){
}
do-while
语句
do{
语句1;
语句2;
}while(条件表达式)
数组,字符,字符串读写及其初始化
字符读写
getchar()
&&putchar
每次只读入任意一个字符,包括换行,制表符等,速度较快,经常被用来快速读写
//数字快读模板
inline int Read(){
int ans=0,f=1;
char ch = getchar();
while(ch<'0' || ch>'9'){
if(ch=='-') f=-1;
ch=getchar();
}
while(ch>'0' && ch<'9'){
ans=ans*10+ch-'0';
ch=getchar();
}
return ans*f;
}
字符串读写
字符串读入
scanf("%s",s)
注意:- 此处的字符串读入时不使用
&
取地址符符号` - scnaf读入时无法读入空格,即读到空格处停止.
- 读入时会自动在字符结尾加上
\0
换行符,因此无需输入换行
- 此处的字符串读入时不使用
- 使用scanf的小技巧
char ch[120];
while(scanf("%s",&st)==1);
循环读入数据,在读不到的时候停止
gets(stringName)
gets()读入时读入一行,可读入空格,不读入换行符.
字符串写入
printf("%s",s)
注意:- 输出时只能是字符串||字符数组名称,而不能是字符元素.
如可以使用printf("%s",ch);
,而不可以使用printf("%s",ch[3]
. - 输出是不包括换行符
\0
- 输出时只能是字符串||字符数组名称,而不能是字符元素.
puts(stringName)
输出一个字符串和一个换行符
即puts(s) == printf("%s\n",s)
字符串处理函数
strcat(s1,s2)
将s2连接到s1末尾,返回s1的值strlen(Name)
计算字符串的长度,\n
不被计算在内strncat(Name1,Name2,长度n)
将2前n个字符复制到1之后strcpy(1,2)
将2复制到1,返回1的值strncpy(1,2,n)
将2前n个字符复制到1,返回1的值strcmp(1,2)
比较1,2大小
若: 1>2 返回正数
1==2 返回0
1<2 返回负数strncmp(1,2,n)
比较1,2前n个字符,返回情况同strncmp