赞
踩
输入一个字符串“12\x08\12\x003\08abc”,请测试sizefo(串)和strlen(串)都是什么值。为什么?
- #include <stdio.h>
- #include <string.h>
- int main(){
- printf("%d\n",sizeof("12\x08\12\x003\08abc"));//8
- printf("%d\n",strlen("12\x08\12\x003\08abc"));//7
- }
输出结果:
%d 十进制有符号整数
%u 十进制无符号整数
%x 无符号以十六进制表示的整数
%o 无符号以八进制表示的整数
%f 浮点数
%e 标准科学计数
%c 单个字符 读入时,任意字符都是有效字符
%s 字符串 读入或者输出都是地址
%ld 表示输出long整数
%lf 表示输出double浮点
while 练习
- #include <stdio.h>
- #include <string.h>
- int main(){
- char str[1000] = {0};
- int cnt = 0;
- scanf("%s",str);
- int len = strlen(str);
- int i = 0;
- while(i<len){
- if(str[i]>='0' && str[i]<='9'){
- cnt =cnt+1;
-
- }
- i = i+1;
- }
- printf("数字字符的个数是%d",cnt);
- return 0;
for循环练习
- #include <string.h>
- #include <stdio.h>
- int main(){
- char str[1000] = {0};
- int cnt = 0;
- scanf("%s",str);
- int len = strlen(str);
- int i = 0;
- for(i=0;i<len;i++){
- if(str[i]>='0' && str[i]<='9'){
- cnt++;
- }
- }
- printf("数字字符的个数是%d",cnt);
- return 0;
- }
循环的本质是执行相同的事情,也就是我们面对一个需求,
//(1)我们要分享出来反复执行的事情,反复执行的事情就是循环体要写的代码。
//(2)什么条件退出,这就是退出条件,也是循环条件。
// 1.相同点,都是循环条件为真,进入循环体,为假的时候,退出循环
//2.不同点:for循环应用已知开始值,已知结束值,并且知道步长。
// while循环应用于循环未知,循环次数是根据中间运算结果决定
知道函数的功能是什么,这样我们才能在实现功能时,使用这个函数。
我们要知道函数形参个数,类型和意义,才能正确的赋实际参数。
我们还要知道函数的返回值,什么类型,什么意义,这样我们就可以定义相应类型的变量来接受函数的返回值,进行下一步处理。
从左向右两两运算比较优先级,左边高的先计算左边的,右边优先级高的,继续向右走,直到找的相对最高的运算符进行计算,如果优先级相同,看结合性(单目运算右结合,双目运算左结合,三目运算嵌套右结合,计算左结合)
左结合,先计算左边
右结合,继续向右走,直到找到最高的优先级进行计算,
重复以上步骤
注意短路
1. #
#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号
1 #define WARN_IF(EXP) / 2 do{ if (EXP) / 3 fprintf(stderr, "Warning: " #EXP "/n"); } / 4 while(0)
那么实际使用中会出现下面所示的替换过程:
WARN_IF (divider == 0);
被替换为
do { if (divider == 0) fprintf(stderr, "Warning" "divider == 0" "/n"); } while(0);
这样每次divider(除数)为0的时候便会在标准错误流上输出一个提示信息。
2. ##
##被称为连接符(concatenator),用来将两个Token连接为一个Token,##符是把传递过来的参数当成字符串进行替代。
例如
#define PRINT( n ) printf( "token" #n " = %d", token##n )
则
PRINT(mine );
在编译时会被编译成
printf( "token" "mine" " = %d", tokenmine );
- #include <stdio.h>
- #include <math.h>
- int main(){
- for(int i= 1;i<=100;i++){
- if(i%7 == 0 ){
- printf("过");
- }else if (i%10 == 7){
- printf("过");
- }else if (i/10%10 == 7){
- printf("过");
- }else {
- printf("%d ",i);
- }
- if(i%10 == 0){
- printf("\n");
- }
- }
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。