首页技术c语言printf输出字符串 c语言printf用法例子

c语言printf输出字符串 c语言printf用法例子

编程之家2026-06-111117次浏览

老铁们,大家好,相信还有很多朋友对于c语言printf输出字符串和c语言printf用法例子的相关问题不太懂,没关系,今天就由我来为大家分享分享c语言printf输出字符串以及c语言printf用法例子的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

c语言printf输出字符串 c语言printf用法例子

C语言怎么用printf输出字符串。

C语言怎么用printf输出字符串printf函数的一般格式

printf(格式控制字符串,输出表列);

以图1所示为例。

图1.

函数参数包括两部分:

【1】格式控制字符串,是用双引号括起来的字符串,也称为转换控制字符串,它指定输出数据项的类型和格式。

c语言printf输出字符串 c语言printf用法例子

它包括两种信息:

●格式说明项:由%和格式字符组成,如%d,%f等。格式说明总是由%字符开始,到格式字符终止。它的作用是将输出的数据项转换为指定的格式输出。输出表列中的每个数据项对应一个格式说明项。

●普通字符:即需要原样输出的字符,如逗号和换行符。

【2】输出列表,是需要输出的一些数据项,可以是表达式。

例如:假如a=3,b=4,那么printf("a=%db=%d",a,b);,输出a=3b=4。其中两个“%d”是格式说明,表示输出两个整数,分别对应变量a,b。“a=”,“b=”是普通字符,原样输出。

由于printf是函数,因此,格式控制字符串和输出表列实际上都是函数的参数。printf函数的一般形式可以表示为:

c语言printf输出字符串 c语言printf用法例子

printf(参数1,参数2,参数3,…,参数n)

printf函数的功能是将参数2到参数n按照参数1给定的格式输出。

【3】格式字符(构成格式说明项)

对于不同类型的数据项,应当使用不同的格式字符构成的格式说明项。常用的有以下几种格式字符:(按不同类型数据,列出各种格式字符的常用用法)

【d格式符】用来输出十进制整数。有以下几种用法:

●%d,按照数据的实际长度输出。

●%md,m指定输出字段的宽度(整数)。如果数据的位数小于m,则左端补以空格(右对齐);若大于m,则按照实际位数输出。

●%-md,m指定输出字段的宽度(整数)。如果数据的位数小于m,则右端补以空格(左对齐);若大于m,则按照实际位数输出。

●%ld,输出长整型数据,也可以指定宽度%mld。

【o格式符】以八进制形式输出整数。注意:是将内存单元中的各位的值按八进制形式输出,输出的数据不带符号,即将符号位也一起作为八进制的一部分输出。

例如:

inta=-1;

printf("%d,%o,%x",a,a,a);

-1的原码:1000,0000,0000,0001。

-1在内存中的补码表示为:

1111,1111,1111,1111=1,111,111,111,111,111=1,7,7,7,7,7=ffff

输出:-1,177777,ffff

【s格式符】用来输出一个字符串。有以下几种用法:

●%s,输出字符串。

●%ms,输出的字符串占m列,如果字符串长度大于m,则字符串全部输出;若字符串长度小于m,则左补空格(右对齐)。

●%-ms,输出的字符串占m列,如果字符串长度大于m,则字符串全部输出;若字符串长度小于m,则右补空格(左对齐)。

●%m.ns,输出占m列,但只取字符串左端n个字符,左补空白(右对齐)。

●%-m.ns,输出占m列,但只取字符串左端n个字符,右补空白(左对齐)。

【 f格式符】用来输出实数(包括单、双精度,单双精度格式符相同),以小数形式输出。有以下几种用法:

●%f,不指定宽度,使整数部分全部输出,并输出6位小数。注意,并非全部数字都是有效数字,单精度实数的有效位数一般为7位(双精度16位)。

●%m.nf,指定数据占m列,其中有n位小数。如果数值长度小于m,左端补空格(右对齐)。

●%-m.nf,指定数据占m列,其中有n位小数。如果数值长度小于m,右端补空格(左对齐)。

【 e格式符】以指数形式输出实数。可用以下形式表示:

●%e,不指定输出数据所占的宽度和小数位数,由系统自动指定。如6位小数,指数占5位,-e占1位,指数符号占1位,指数占3位。数值按照规格化指数形式输出(小数点前必须有而且只有1位非0数字)。

怎么在C语言里用printf输出一个中文

一般情况下,应用程序采用的字符集为gbk, gb2312,该字符集中一个汉字由两个字节组成,所以在普通的C语言中,汉字是按字符串进行存储和输出的。(另:还有utf8字符集,一个汉字由三个字节组成,详情可查阅utf8字符集)

char* p="张三";

输出多个中文:

printf("%s

", p);//按字符串输出完整的数据

输出一个中文:

printf("%c%c",*p,*p+1);//按字符输出,同时输出两个字节

输出一个中文串的长度:

printf("sizeof(p)=%d

", sizeof(p));//p变量是指针,所以,这里输出的是指针的宽度,一般32位机是4

printf("sizeof(张)=%d

", sizeof("张"));//"张"是个常量字符串,sizeof是得到其占内存的大小,字符串都有一个结束符,一个”张“字占两字节,加上字符串结束\0,所以,占三个字节的内存空间

printf("length of(张)=%d

", strlen("张"));//strlen得到的是字符串有效字符长度(字节数),不包括结束符,所以,长度是两个字节

c语言问题,关于printf语句的输出

printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用 printf函数之前必须包含stdio.h文件。printf函数调用的一般形式为:

printf(“格式控制字符串”,输出表列),其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如:

“%d”表示按十进制整型输出;

“%ld”表示按十进制长整型输出;

“%c”表示按字符型输出等。

非格式字符串原样输出,在显示中起提示作用。输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。

看下面例子:

#include<stdio.h>

int main(void)

{

int a=88,b=89;

printf("%d%d

",a,b);

printf("%d,%d

",a,b);

printf("%c,%c

",a,b);

printf("a=%d,b=%d",a,b);

return 0;

}

本例中四次输出了a、b的值,但由于格式控制串不同,输出的结果也不相同。第3行的输出语句格式控制串中,两格式串%d之间加了一个空格(非格式字符),所以输出的a、b值之间有一个空格。第4行的printf语句格式控制串中加入的是非格式字符逗号,因此输出的a、b值之间加了一个逗号。第5行的格式串要求按字符型输出a、b值。第6行中为了提示输出结果又增加了非格式字符串。

在Turbo C中格式字符串的一般形式为: [标志][输出最小宽度][.精度][长度]类型。

其中方括号[]中的项为可选项。

1)类型:类型字符用以表示输出数据的类型,其格式符和意义如下表所示:

格式字符意义

d以十进制形式输出带符号整数(正数不输出符号)

o以八进制形式输出无符号整数(不输出前缀0)

x,X以十六进制形式输出无符号整数(不输出前缀Ox)

u以十进制形式输出无符号整数

f以小数形式输出单、双精度实数

e,E以指数形式输出单、双精度实数

g,G以%f或%e中较短的输出宽度输出单、双精度实数

c输出单个字符

s输出字符串

2)标志:标志字符为-、+、#和空格四种,其意义下表所示:

标志意义

-结果左对齐,右边填空格

+输出符号(正号或负号)

空格输出值为正时冠以空格,为负时冠以负号

(对c、s、d、u类无影响;

对o类,在输出时加前缀o;

#对x类,在输出时加前缀0x;

对e、g、f类当结果有小数时才给出小数点。)

3)输出最小宽度:用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。

4)精度:精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。

5)长度:长度格式符为h、l两种,h表示按短整型量输出,l表示按长整型量输出。

看下面例子:

#include<stdio.h>

int main(void){

int a=15;

long float b=123.1234567;

double c=12345678.1234567;

char d='p';

printf("a=%d

", a);

printf("a(%%d)=%d, a(%%5d)=%5d, a(%%o)=%o, a(%%x)=%x

",a,a,a,a);//%%可以输出%

printf("a=%f

", b);

printf("b(%%f)=%f, b(%%lf)=%lf, b(%%5.4lf)=%5.4lf, b(%%e)=%e

",b,b,b,b);

printf("c=%f

", c);

printf("c(%%lf)=%lf, c(%%f)=%f, c(%%8.4lf)=%8.4lf

",c,c,c);

printf("d=%c

", d);

printf("d(%%c)=%c, d(%%8c)=%8c

",d,d);

return 0;

}

运行结果为:

本例中:第11行以四种格式输出整型变量a的值,其中“%5d”要求输出宽度为5,而a值为15,只有两位故补三个空格。

第14行以四种格式输出实型量b的值。其中“%f”和“%lf”格式的输出相同,说明“l”符对“f”类型无影响。“%5.4lf”指定输出宽度为5,精度为4,由于实际长度超过5,故应该按实际位数输出,小数位数超过4位部分被截去。

第17行输出双精度实数,“%8.4lf”由于指定精度为4位,故截去了超过4位的部分。

第20行输出字符量d,其中“%8c”指定输出宽度为8,故在输出字符p之前补加7个空格。

关于c语言printf输出字符串和c语言printf用法例子的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

excel汇总求和,怎么把十几个excel合成一个蓝色始祖幼龙(蓝色始祖幼龙掉率)