占位符及其种类

(本人小白一枚,以下内容为学习记录,若有错误或表述问题,希望能得到指正)

占位符是一种特殊字符或字符串,用于表示将来要填充的值的位置,通常用于字符串替换或格式化。它们是在程序运行时动态生成的,以便将实际值插入到占位符的位置。

占位符可以在代码运行时为输入的数据进行占位,不同类型的占位有不同的格式,帮助程序员控制输出的格式,使代码更加简洁、易读。

其中,不同的占位符代表不同的数据类型

种类

  1. %d : 整数(decimal-十进制)
  2. %ld :长整型
  3. %u :无符号整数(unsigned)
  4. %f : 浮点数(float)
  5. %e :指数形式输出实数(指定浮点类型,%e对应float,%E对应double)
  6. %g :自动选择%f、%e输出实数(不输出无意义的0)
  7. %c : 单个字符(character)
  8. %s : 字符串(string)
  9. %p : 指针的值(pointer)
  10. %x : 十六进制整数(小写字母)
  11. %X :十六进制整数(大写字母)
  12. %o : 八进制数(octal)
  13. %n :输出已经输出的字符数
  14. %%:输出百分号

下面就个别类型举一些例子。

例1、%e

该占位符用来以指数形式输出实数,意思即用科学计数法,如将500写成5*(10)^2。

int main()
{
	printf("%e", 500.0);
	return 0;
}

显示结果为5.000000e+02,意思是5*10^2。

例2、%c

如果使用char类型变量,该变量在内存中以ASCII值形式储存,其运算即是对ASCII值进行运算,运算结果在%c的前提下转为字符,看一下下面的代码

int main()
{
	char b = 0 ;
	scanf("%c", &b);
	printf("%c\n", b);
	printf("%c\n", b+1);
	return 0;
}

在scanf输入字符9,在内存中会对应到ASCII值57,57+1=58,而58对应的字符却是 : ,因而b+1的结果不是10。

东江一笑的博客:Ascii完整码表(256个)

例3、%s

字符串可以看作字符的数组,每个字符相互独立。

int main()
{
	char b[10] = { '1','0','0','0' };
	printf("%s\n", b);

	char c[10] = "1000";
	printf("%s\n", c);

	char d[4] = "1000";
	printf("%s\n", d);
	return 0;
}

由于变量d的空间全被使用,没有多余空间交给\0(结束标志),因此出现错误。

例4、%c与%s

给char类型变量赋值,该值根据使用的占位符不同会输出不同的结果。

字符与ASCII值能通过%c、%d相互转换输出(需要注意字符9和数字9是两个不同概念)

int main()
{
	char a[10] = { 0 };
	a[1] = 36;
	printf("%c\n", a[1]);
	printf("%d\n", a[1]);
	char b = 36;
	printf("\n%d\n", b + 1);
	printf("%c\n", b + 1);
	char c = '9';
	printf("\n%c\n", c+1); 
	printf("%d\n", c+1);
	return 0;
}

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值