20160125.CCPP详解体系(0004天)
2016-01-26 01:20
357 查看
程序片段(01):宽字符.c
内容概要:宽字符
程序片段(02):宽字符处理.c
内容概要:宽字符处理
程序片段(03):auto.c
内容概要:auto关键字
程序片段(04):main.cpp
内容概要:auto关键字Qt测试
程序片段(05):bool.c
内容概要:C99语法补充_Bool
程序片段(06):int.c
内容概要:整数的操作意义
程序片段(07):Test.c
内容概要:啃爹运算法则解析
程序片段(08):随机数.c
内容概要:赌博机实现
程序片段(09):打印可见字符.c
内容概要:打印可见字符
程序片段(10):main.c
内容概要:简单排序
内容概要:宽字符
#include <stdio.h> #include <stdlib.h> #include <Windows.h> //01.宽窄字符的使用特点: // 1.宽窄字符变量的使用特点: // (1).只是存储数据的格子大小不一样,窄字符小,宽字符大 // (2).如果存储相同的数据,只要不发生数据越界,或者存储的数据即使越界 // 但是打印的时候成中文字符字符存储单元进行打印,打印效果一致,否则乱码 // 2.宽窄字符所占用的内存字节数计算方式: // 窄字符: // 英文字符占用一个字节,中文字符占用两个字节 // 宽字符: // 所有字符(无论是宽字符还是窄字符)统一占用两个字节 // 3.关于宽窄字符的乱码解决方案: // MessageBox(); // (1).跟项目设置有关 // (2).字符集设置结果: // 默认,使用Unicode字符集,要求中文字符必须使用宽字符 // 设置,使用多字节字符集,要求中文不必要使用宽字符,窄字符就行了 // MessageBox();+TEXT():有参宏 // (1).跟项目编译器设置毫无关系 // (2).使用中文的时候,需要用有参宏TEXT();进行处理 // 其实TEXT():有参宏就是在处理宽窄字符问题 // 中文自适应的进行改变(宽窄字符自动选择) // 先判断项目编译器设置,再改变中文的形式特点(宽窄字符) // MessageBoxA(); // (1).强制使用多字节字符集 // (2).也就是中文必须使用窄字符 // MessageBoxW(); // (1).强制使用Unicode字符集 // (2).也就是中文必须使用宽字符 int main01(void) { char ch = 'A';//表示范围小,节约内存 wchar_t ch1 = L'0';//宽字符占用两个字节,表示范围大,耗费内存 printf("%d, %d \n", sizeof(char), sizeof(wchar_t)); printf("%d, %d \n", sizeof(ch), sizeof(ch1)); printf("%d \n",sizeof("1我"));//4byte 三个字符 printf("%d \n",sizeof(L"1我"));//6byte "1"字符,"我"字符,"\0"字符-->3个字符 //MessageBox(0, L"你好天朝!", L"你好世界!", 0); //设置Unicode,需要使用宽字符MessageBox(0, L"你好天朝!", L"你好世界!", 0); //设置多字节字符,需要使用在字符MessageBox(0, "你好天朝!", "你好世界!", 0); //中文字符串具体使用宽字符还是窄字符和项目设置有关: // 默认Unicode,需要对中文使用宽字符 // 设置多字节字符集,不需要使用宽字符 //A代表调用多字节字符集,需要使用窄字符来操作中文 MessageBoxA(0, "你好天朝!", "你好世界!", 0); //W代表调用默认调用Unicode,需要使用宽字符来操作中文 MessageBoxW(0, L"你好中文!", L"你好世界!", 0); //TEXT可以进行兼容自动调整,也就是忽略宽窄字符,自适应显示 MessageBox(0, TEXT("你好天朝!"), TEXT("你好世界!"), 0); system("pause"); return 1; }
程序片段(02):宽字符处理.c
内容概要:宽字符处理
#include <stdio.h> #include <stdlib.h> #include <locale.h>//包含本地化设置函数的头文件 //01.宽窄字符特点: // 1.无论是宽字符还是窄字符,赋予同一个数据,那么映射的实体都一样,只是存储盒子不一样 // 2.既然数据实体一致,那么解析的时候就看解析方式的特点了 // %s:表示按照字符串的方式进行解析,知道解析到字符串标识符 // %c%c:表示按照两个字节对应于两个字符进行解析,解析结果如同字符串 int main01(void) { char str[10] = "我";//无论是宽窄字符所映射的数据实体都一致 printf("%s \n", str);//按照字符串进行解析 printf("%c%c \n", str[0], str[1]);//窄字符显示汉字(多个字符组合进行解析) system("pause"); return 1; } //02.宽字符的使用特点: // 1.需要设置国际化当中的本地化: // 引入头文件:#include <locale.h> // 设置本地化:setlocale(LC_ALL, "zh-CN"); // 2.宽字符函数处理宽字符的时候,所以宽字符 // 都给必须添加L标识 // 3.宽字符对应的格式控制符: // L"%ls" int main02(void) { setlocale(LC_ALL, "zh-CN");//全局使用中文环境(国际化设置) //wchar_t wstr[10] = L"1234"; wchar_t wstr[10] = L"1234我是色狼!";//宽字符用wprintf,显示英文 wprintf(L"%ls \n", wstr);//L,l宽字符处理 system("pause"); return 1; } //03.宽窄字符常量都必须采用单引号('')引上 int main(void) { setlocale(LC_ALL, "zh-CN"); wchar_t ch = L'我'; putwchar(ch); system("pause"); return 1; } int main04(void) { char ch = 'A'; wchar_t wch = L'A'; printf("%d \n", wch); system("pause"); return 1; } int main05(void) { setlocale(LC_ALL, "zh-CN"); //printf("%s", L"我打算的");//宽字符不能使用窄字符的打印方式 wprintf(L"%ls", L"我是"); system("pause"); return 1; }
程序片段(03):auto.c
内容概要:auto关键字
#include <stdio.h> //01.auto关键字使用特点: // 1.标识变量的自动回收释放 // 2.只要在函数内部的变量: // 使用auto关键字修饰变量的声明与没有声明的效果一致 void go(void) { int num = 10; printf("%p \n", &num); } int main01(void) { auto int num = 10;//自动分配自动释放 go(); printf("AAAAAAAAAAAAAAAA \n"); go(); printf("AAAAAAAAAAAAAAAA \n"); system("pause"); return 1; }
程序片段(04):main.cpp
内容概要:auto关键字Qt测试
#include "mainwindow.h" #include <QApplication> void go() { MainWindow w;//创建 w.show(); } int main(int argc, char *argv[]) { QApplication a(argc, argv); go(); return a.exec(); }
程序片段(05):bool.c
内容概要:C99语法补充_Bool
#include <stdio.h> #include <stdlib.h> //01.在C99语法当中引入了基于C语言的布尔类型: // 1._Bool类型 // 2.占用单个字节 // 3.true(非0)|false(0)-->单个字节存储 int main01(void) { _Bool bl = 10;//true|false 非0|0 printf("%d \n", bl); printf("%d \n", sizeof(bl));//一个字节 bl ? printf("周瑞富爱凤姐! \n") : printf("周瑞富不爱凤姐! \n"); system("pause"); return 1; }
程序片段(06):int.c
内容概要:整数的操作意义
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> //01.循环复杂指令: // for /l %i in (1,1,5) do int main01(void) { char cmd[100]; int N; scanf("%[^\n]", cmd);//处理携带空格的字符串 scanf("%d", &N); char strcmd[200] = { 0 }; sprintf(strcmd, "for /l %%i in (1,1,%d) do %s", N, cmd);//映射 //printf("%s", strcmd); system(strcmd); system("pause"); return 1; }
程序片段(07):Test.c
内容概要:啃爹运算法则解析
#include <stdio.h> #include <stdlib.h> //01.总结: // 1.从结果可以退出计算原理,保证交换律依然有效 // 也就是同时出现++db或者同时出现db++那么 // 无论如何都得保证其运算结果一致 // 2.单实体的数据如何确定? // 前加就以最有一次加加运算的结果为实体数据 // 后加就以第一次加加运算的结果为实体数据 // 所有实体的的数据一致 int main01(void) { printf("Hello World!!! \n"); double db = 1; //double y = ++db*++db;//9 //double y = db++*db++;//1 double y = db++ + db++ + db++;//3 //printf("%p \n", &db); printf("%f \n", y); system("pause"); return 1; }
程序片段(08):随机数.c
内容概要:赌博机实现
#include <stdio.h> #include <stdlib.h> #include <time.h> //01.赌博问题模拟: // 1.随机生成0~100之间的数字 // 2.生成的数字在>=80之间的数字 // 概率为20% //02.随机数生成要素: // 1.随机数种子 // 2.种植数种子 // 3.随机数函数 // 4.求余运算符 int main01(void) { time_t ts; unsigned int num = time(&ts);//根据时间生成随机数种子 srand(num); int data = rand() % 100;//随机数的生成依赖于随机数种子 printf("%d \n", data); system("pause"); return 1; } int main02(void) { time_t ts; unsigned int num = (unsigned int)time(&ts); srand(num); int data = rand() % 100; printf("%d \n", data); data >= 90 ? printf("赢了 \n") : printf("输了 \n"); system("pause"); return 1; }
程序片段(09):打印可见字符.c
内容概要:打印可见字符
#include <stdio.h> #include <stdlib.h> //01.字符的可见性: // 1.可见字符: // ASCII码值在32~126之间的字符就是课件字符 // 2.不可见字符: // ASCII码值在32~126之外的字符就是不可见字符 int main01(void) { for (int i = 32; i < 127; i++) { putchar(i); } system("pause"); return 1; }
程序片段(10):main.c
内容概要:简单排序
#include <stdio.h> #include <stdlib.h> int main(void) { int a, b, c; scanf("%d%d%d", &a, &b, &c); //将a,b,c三个变量的数值按照从小打到进行排列 (a > b) ? (a=a^b,b=a^b,a=a^b) : 0; (a > c) ? (a=a^c,c=a^c,a=a^c) : 0; (b > c) ? (b=b^c,c=b^c,b=b^c) : 0; //a=a^b,b=a^b,a=a^b;可以实现变量存储的数据交换操作 printf("%d, %d, %d \n", a, b, c);//从小达到 system("pause"); return 1; }
相关文章推荐
- c++STL中的hash_map自定义类。
- 20160124.CCPP详解体系(0003天)
- 20160123.CCPP详解体系(0002天)
- 历届蓝桥杯C/C++省赛试题
- zhx and contest (HDU_5188) 01背包+条件限制
- 2012年第三届蓝桥杯C/C++程序设计本科B组省赛
- C语言 百炼成钢16
- 2012年第三届蓝桥杯C/C++程序设计本科B组省赛 取球博弈(编程大题)
- C++编程实例-while循环结构
- C++编程实例-友元
- C++编程实例-分支结构
- C++编程实例-I/O流
- C++ 对象与指针
- C++函数重载
- C++编程实例-函数
- C++编程实例-多重循环结构
- C++ 面向过程与面向对象的区别
- C++中const与static在面向过程代码中的异同
- C++标准编程:虚函数与内联
- C++ 实例导航