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

前面定义了一个结构体,有一项定义的char a[20];后面输入数据后进行显示,问怎么在这个显示子函数中输出输入的字符串。输入字符串时用的scanf函数。


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

printf函数的一般格式
printf(格式控制字符串,输出表列);
以图1所示为例。
图1.


函数参数包括两部分:
【1】格式控制字符串,是用双引号括起来的字符串,也称为转换控制字符串,它指定输出数据项的类型和格式。
它包括两种信息:


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


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


【2】输出列表,是需要输出的一些数据项,可以是表达式。
例如:假如a=3,b=4,那么printf("a=%db=%d",a,b);,输出a=3b=4。其中两个 “%d”是格式说明,表示输出两个整数,分别对应变量a,b。“a=”,“b=”是普通字符,原样输出。


由于printf是函数,因此,格式控制字符串和输出表列实际上都是函数的参数。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数字)。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-10-09

void main()

{

unsigned char *x = "ab,sdf,sad,23432,cc";

data = x;

printf("data = %c\n", *data);

printf("data = %s\n", data);

system("pause");

}

扩展资料:

printf输出字符串的一些格式

1、原样输出字符串:printf("%s", str);

2、输出指定长度的字符串, 超长时不截断, 不足时右对齐:printf("%Ns", str);             

注:N 为指定长度的10进制数值

3、输出指定长度的字符串, 超长时不截断, 不足时左对齐:printf("%-Ns", str);   

注:N 为指定长度的10进制数值

4、输出指定长度的字符串, 超长时截断, 不足时右对齐:printf("%N.Ms", str);

注:N 为最终的字符串输出长度

M 为从参数字符串中取出的子串长度

5、输出指定长度的字符串, 超长时截断, 不足时左对齐是: printf("%-N.Ms", str); 

注:N 为最终的字符串输出长度

M 为从参数字符串中取出的子串长度

参考资料来源:printf-百度百科

本回答被网友采纳
第2个回答  推荐于2017-10-06

    printf函数的一般使用形式为:printf("输出格式",输出项系列);要输出字符串,则只需写出相应的输出格式以及输出项系列即可,其中输出格式为%s,输出项系列为字符串名

    printf函数输出字符串的例子如下:

    #include<stdio.h>

    void main()

    {

      char str[10]="ABCD";

    printf("%s",str);

    }

    上述程序输出了字符串 ABCD

第3个回答  2018-07-06

printf函数的一般使用形式为:printf("输出格式",输出项系列);要输出字符串,则只需写出相应的输出格式以及输出项系列即可,其中输出格式为%s,输出项系列为字符串名。

printf函数输出字符串的例子如下:

#include<stdio.h>

void main()

{char str[10]="ABCD";

printf("%s",str);}

上述程序输出了字符串 ABCD

第4个回答  推荐于2017-10-13
列子如下:
#include<stdio.h>
struct student{
char a[20];
char id[20];
};
int main(void)
{
struct student stu1;
printf("请输入一个字符串...\n");
scanf("%s",stu1.a);
printf("输入的字符串是:\n");
printf("%s",stu1.a);
}本回答被提问者和网友采纳