蓝桥杯:基础练习 01字串(printf格式控制、cout格式控制、sprintf、itoa)

     题目:http://lx.lanqiao.cn/problem.page?gpid=T6

#include<iostream>
#include<stdlib.h>
#include<cstring>
using namespace std;
 
int main()
{

	for(int i=0;i<32;i++){
		char s[10];
		string str = "";
		itoa(i,s,2);		//itoa(整型数, 字符数组, 进制) 头文件stdlib.h 

		if(i<2)
			str="0000";
		else if(i<4)
			str="000";
		else if(i<8)
			str="00";
		else if(i<16)
			str="0";
		cout<<str;
		printf("%s\n", s);    //printf:字符串不能控制补0
	
	} 

	return 0;
}
#include<iostream>
#include<stdlib.h>
#include<cstring>
#include<iomanip>
using namespace std;
 
int main()
{
 
	for(int i=0;i<32;i++){
		char s[10];
		string str = "";
		itoa(i,s,2);		//itoa(整型数, 字符数组, 进制) 头文件stdlib.h 
 
		cout << setw(5) << setfill('0') << s << endl;	
	} 
 
	return 0;
}

 

sprintf(字符数组,格式化字符串,任意个可选参数),将一个格式化的字符串输出到一个目的字符串 。
printf将一个格式化的字符串输出到屏幕。

itoa: 可以转换二进制到字符串,但不能补零。(后期按条件补零)

sprintf:可以转换进制补零到字符串,但没有二进制。

 

 

 

pringf格式控制
控制符说明示例
%d按十进制整型数据的实际长度输出。 
%ld

输出长整型数据 。

%lld  %l64d(https://blog.csdn.net/OneLine_/article/details/80765478

 
%md

m 为指定的输出字段的宽度。

如果数据的位数小于 m,则左端补以空格;若大于 m,则按实际位数输出。

int i = 5;

%03d     005

%3d           5

%o以八进制整数形式输出。 
%x(或 %X 或 %#x 或 %#X)以十六进制形式输出整数。

int i = 47

%x    2f
%X   2F
%#x  0x2f
%#X  0X2F

%u

输出无符号整型(unsigned)。

输出无符号整型时也可以用 %d,这时是将无符号转换成有符号数,然后输出。但编程的时候最好不要这么写,因为这样要进行一次转换,使 CPU 多做一次无用功。

 
%c输出一个字符 
%f

用来输出实数,包括单精度和双精度,以小数形式输出。

不指定字段宽度,由系统自动指定,整数部分全部输出,小数部分输出 6 位,超过 6 位的四舍五入。

 
%.mf输出实数时小数点后保留 m 位。 
%s  输出字符串,要先定义字符数组或字符指针存储或指向字符串。 

 

 

  

 

cout格式控制
控制符说明示例
setw(n)控制预设宽度,只对其后紧跟的输出产生作用。若输入的内容超过setw()设置的长度,则按实际长度输出。默认右对齐。 
setfill(char c)在预设宽度中如果已存在没用完的宽度大小,则用设置的字符c填充。 
l eft和right更改对齐方式。默认的是右对齐。 
fixed使用小数计数法。 
setprecision(n)控制输出流显示浮点数的精度,即小数点后的位数。 
scientific使用科学计数法。 
showpos在正数之前加上正号。   

 

 

       

 

   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值