[c/c++] programming之路(6)、ASCII码,数据类型、随机数、字符转换及拼接等
一、变量
#include<stdio.h>
#include<stdlib.h> void main0(){
//数据使用必须在范围内,否则产生溢出
unsigned short num=+;//+1之后溢出为0
//printf("%d",sizeof(num));
printf("阿飞有%d元",num);
getchar();
} void main1(){
short num=+;//+1之后溢出为-32768
printf("阿飞有%d元",num);
getchar();
} void main2(){
//printf的本质是按照自己的方式,将变量转换为字符串,无论变量以前是什么类型,而且printf不会自动转换
printf("%d",);//%d整数
printf("\n%f",);//%f实数 打印出0.000000 1改成1.0之后打印正确
getchar();
} void main3(){
//使用printf打印的时候,必须要类型匹配,否则出错
printf("%d,%u",-,-);//%d有符号十进制,%u无符号十进制
getchar();
}
//能编译,不能保证结果正确
void main(){
printf("%d",-);//正确
printf("\n%u",-);//错误
printf("\n%x",-);//无符号16进制,错误
printf("\n%o",-);//无符号8进制,错误
getchar();
}
二、随机数
#include<stdio.h>
#include<stdlib.h>
#include<time.h> void main(){
//三目运算符:0就执行notepad,非0执行calc
//-1?system("calc"):system("notepad");
int num=rand()%;//0~99的随机数
printf("%d\n",num);
num>?printf("你赢了"):printf("你输了");
getchar();
}
经过测试,上述代码只能产生一次随机数,即多次运行结果不变。那么如何让程序每次都产生不同的随机数呢?
#include<stdio.h>
#include<stdlib.h>
#include<time.h> void main(){
int num;
time_t t;//定义时间类型的变量
//time是一个函数,获取时间,复制给t,转换为unsigned int类型
srand((unsigned int)time(&t)); num=rand()%;//0~99的随机数
num=rand()%+;//100~199的随机数
printf("%d\n",num);
num>?printf("你赢了"):printf("你输了");
getchar();
}
三、随机恶作剧
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h> _declspec(dllexport) void go1(){
while(){
malloc(**);//10M
Sleep();
}
} _declspec(dllexport) void go2(){
while(){
MessageBoxA(,"马化腾邀请你共进晚餐","享受终生QQ红钻",);
Sleep();
}
} _declspec(dllexport) void randgo(){
int num;
time_t t;
srand((unsigned int)time(&t));
num=rand()%;
num>?go1():go2();
}
然后注射到程序中,实现恶作剧
四、数据类型
#include<stdio.h>
#include<stdlib.h> void main()
{
int num=;
char ch='';
printf("%d,%c",num,num);
printf("\n%d,%c",ch,ch);
system("pause");
}
稍作修改如下
#include<stdio.h>
#include<stdlib.h> void main(){
printf("%d",sizeof());//int的常量 4个字节
printf("\n%d",sizeof(4.0));//double 8个字节
printf("\n%d",sizeof(4.0f));//float 4个字节
printf("\n%d",sizeof(4u));//unsigned int 4个字节
getchar();
}
#include<stdio.h> void main(){
//数据类型指明了二进制该如何解析
int num1=;
float num2=10.0;
printf("%x,%f",num1,num1);
printf("\n%x,%f",num2,num2);
printf("\n%x,%x",&num1,&num2);
getchar();
}
五、三角形面积
#include<stdio.h>
#include<stdlib.h>
#include<math.h> void main(){
float a,b,c,s,p;
scanf("%f%f%f",&a,&b,&c);//数据输入,初始化a,b,c
printf("a=%f,b=%f,c=%f\n",a,b,c);
p=(a+b+c)/;
s=sqrt(p*(p-a)*(p-b)*(p-c));//sqrt求平方根
printf("面积s=%f",s);
system("pause");
}
六、字符转换成整数
#include<stdio.h>
#include<stdlib.h> void main(){
//字符0的编号是48,按照字符是0
printf("字符0编号=%d,字符0的字符=&c",'','');
printf("\n整数0编号=%d,整数0的字符=&c",,);
printf("\n%d",''-);//字符转换成整数
printf("\n%d",''-);//都等于48
system("pause");
}
七、大小写转换
#include<stdio.h>
#include<stdlib.h> void main()
{
char ch=getchar();
//putchar(ch+32);//大写->小写
putchar(ch-);//小写->大写
system("pause");
}
八、字符串拼接
#include<stdio.h>
#include<stdlib.h> void main(){
char str1[]="note";
char str2[]="pad";
char str3[];
sprintf(str3,"%s%s",str1,str2);
system(str3);
getchar();
}
[c/c++] programming之路(6)、ASCII码,数据类型、随机数、字符转换及拼接等的更多相关文章
- C语言:从p所指字符串中找出ASCII码最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。-使字符串的前导*号不得多于n个,若多余n个,则删除多余的*号,
//fun函数:从p所指字符串中找出ASCII码最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动. #include <stdio.h> void fun( char * ...
- php中的字符串常用函数(四) ord() 获得字符的ascii码 chr()获取ascii码对应的字符
ord('a');//=>97 返回小写a 的ascii码值97 chr(97);//=>a 返回ascii码表上的97对应的 小写a
- 特殊的ASCII码对应的字符
Special Characters " " " quotation mark u+0022 ISOnum p:before { content:"\0022& ...
- 利用浏览器做好数字进制和ASCII码及Unicode教与学
浏览器是现在个人计算机的标配,一般来说一个PC至少安装一种以上的浏览器.主流网页浏览器有Google Chrome.Internet Explorer.Microsoft Edge.Mozilla F ...
- 教程-最全ASCII 码对照表
第一部分由 00H 到 1FH 共 32 个,一般用来通讯或作为控制之用,有些字符可显示于屏幕,有些则无法显示在屏幕上,但能看到其效果(例如换行字符.归位字符). 第二部分是由 20H 到 7FH 共 ...
- C++ ASCII 码的一些问题
关于ASCII码和转义字符的对应问题,一直都有个困惑.所以今天校验了一下是什么情况. 转义字符的百度百科:http://baike.baidu.com/link?url=D9ytjAeiYr1ZGKG ...
- C语言字符转换ASCII码
//函 数 名:CharToHex()//功能描述:把ASCII字符转换为16进制//函数说明://调用函数://全局变量://输 入:ASCII字符//返 回:16进制///////// ...
- C语言之字符集、ASCII码和sizeof运算符
一 字符集和ASCII码 结论:字符本质上也是一个整数,每个字符都有唯一一个与之对应的整数, 比如说小写的a对应97,b对应98,c对应99,大写的A对应65,B对应66,C对应67 所以字符对应的那 ...
- js字母/字符与ASCII码转换
var tempStr="A"; console.log(tempStr.charCodeAt());// 65 ,转ASCII码 console.log(String.fromC ...
随机推荐
- 8.C#友元程序集----可访问性相关
在一个团队或者公司中,一个人开发出来的程序集中的类的可见性有public,private和internal, public:对所有程序集可见,就是说如果拿到程序集.DLL文件,那么类就被公开了. pr ...
- UGUI之Slider使用,制作血条
用Slider来控制Cube旋转 Slider是滑动条.
- recover database noredo时报错ORA-19573
环境: RHEL6.4 + Oracle 11.2.0.4 Primary RAC + Standby RAC 今天发现DG备库归档空间满,清理后发现备库出现GAP,需要从主库做基于SCN的增量备份进 ...
- jQuery-手风琴伸缩效果
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- (转)Properties Editor为你解除通过native2ascii进行Unicode转码的烦恼
在Java或J2EE应用程序的设置文件或国际化对应的桌面应用程序的开发中,广泛使用着属性文件.然而,你必须通过J2SDK中的native2ascii工具来将文件中的多字节字符转换成Unicode的字符 ...
- python中的IO操作
python中的基本IO操作: 1) 键盘输入函数:raw_input(string),不作处理的显示,与返回. input(string),可以接受一个python表达式作为返回,python内部得 ...
- VS 统计整个项目总的代码行数
vs如何快速统计项目总代码行数呢,如下: vs编辑 | 查找和替换 | 在文件中查找 查找选项选 选择正则表达式 ^b*[^:b#/]+.*$ 设置如下: 结果在查找结果的最后一行,如下
- SLAM学习笔记 - ORB_SLAM2源码运行及分析
参考资料: DBow2的理解 单目跑TUM数据集的运行和函数调用过程 跑数据集不需要ros和相机标定,进入ORB_SLAM目录,执行以下命令: ./Examples/Monocluar/mono_tu ...
- PersistenceContext.properties()
在做 Spring + SpringMVC + SpringData 时,单元测试 报这个错误: java.lang.NoSuchMethodError:javax.persistence.Persi ...
- 字符编码几个缩写 ACR CCS CEF CES TES
摘自https://zhuanlan.zhihu.com/p/27012967 5. 在Unicode Technical Report (UTR统一码技术报告) #17<UNICODE CHA ...