C语言中,printf函数对整型,浮点型,字符型使用不同占位符(%d, %f, %c, %s)输出的研究

C语言中,printf函数对整型,浮点型,字符型使用不同占位符(%d, %f, %c, %s)输出的研究

注意:

​ 定义的类型与输出的类型要对应。

1.1 占位符

格式说明由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。

格式字符有d,o,x,u,c,s,f,e,g等。如%d整型输出,%ld长整型输出,%o以八进制数形式输出整数,%x以十六进制数形式输出整数,或输出字符串的地址。%u以十进制数输出unsigned型数据(无符号数)。注意:%d与%u有无符号的数值范围,也就是极限的值,不然数值打印出来会有误。%c用来输出一个字符,%s用来输出一个字符串,%f用来输出实数,以小数形式输出,默认情况下保留小数点6位。%.100f用来输出实数,保留小数点100位。%e以指数形式输出实数,%g根据大小自动选f格式或e格式,且不输出无意义的零。

1.2 字符型用%d打印和整型用%c打印

​ 打印出对应ASCII码值。

例子:

void test05() {
	char ch1 = 'a';
	int a = 65;
	double b = 1.3;
    
	printf("ch1 = %c\n", ch1);
	printf("ch1 = %d\n", ch1);
    
	printf("a = %d\n", a);
	printf("a = %c\n", a);
}

结果:

ch1 = a

ch1 = 97

a = 65

a = A

1.3 整型(%d)与浮点型(%f)

​ 不能混用。

例子:

//test %d, %f
void test06() {
  int a = 65;
  double b = 1.3;
    
  printf("a = %d\n", a);
  printf("a = %.2f\n", a);

  printf("b = %.2f\n", b);
  printf("b = %d\n", b);
}

结果:

a = 65

a = 0.00

b = 1.30

b = -858993459

1.4字符(%c)与字符串(%s)

(1)字符(%c)形式打印字符串

​ 打印字符printf语句输入的是值,打印字符串,输入的是地址。用%s的形式打印字符会报错

例子:

//test %c, %s
void test07() {
  char ch1 = 'w';
  char str2[3] = "go";
    
  printf("ch1 = %c\n", ch1);
  printf("str2[0] = %c\n", str2[0]);

  printf("ch1 = %s\n", &ch1);
  printf("str2 = %s\n", str2);
}

结果:

ch1 = w

str2[0] = g

ch1 = w烫烫<

肄瘥?

str2 = go

(2)打印字符串(%s)

注意事项:

①遇到'\0'结束

②对于没有’\0’的字符数组,当实际赋值的长度小于定义的长度时,打印实际的长度;当实际赋值的长度等于定义的长度时,打印乱码。

③对于没有填满的字符数组,打印数组的长度

例子:

//test printf with %s
void test04() {
  char str1[3] = "we";
  char str2[2] = {'g', '0'};
  char str3[4] = {'w', 'e'};

  printf("str1 = %s\n", str1);
  printf("str2 = %s\n", str2);
  printf("str3 = %s\n", str3);
}

结果:

str1 = we

str2 = g0烫烫烫烫烫we

str3 = we

posted @ 2022-04-05 17:18  Meditators  阅读(316)  评论(0编辑  收藏  举报