c语言中的%c和%s

作者&投稿:甘荆 (若有异议请与网页底部的电邮联系)
C语言中%c,%s分别代表什么意思?~

%c在C语言中代表字符型格式符。
%s在C语言中代表字符串型格式符。
%c和%s一般用在printf、sprintf等字符串格式化函数中,用于决定格式化参数的数据类型。如printf("%s", a)会将变量a作为字符串类型进行格式化。
printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。
printf()函数的调用格式为: printf("", )。
格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

扩展资料:
C语言中所有格式化类型的定义:
1、%d/i
接受整数值并将它表示为有符号的十进制整数,i是老式写法
2、%o
无符号8进制整数(不输出前缀0)
3、%u
无符号10进制整数
4、%x/X
无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF(不输出前缀0x)
5、%f(lf)
单精度浮点数和双精度浮点数用f(lf在C99开始加入标准,意思和f相同)
6、%e/E
科学计数法表示的数,此处"e"的大小写代表在输出时用的“e”的大小写
7、%g/G
有效位数,如:%.8g表示单精度浮点数保留8位有效数字。
8、%c
字符型。可以把输入的数字按照ASCII码相应转换为对应的字符
9、%s/S
字符串。输出字符串中的字符直至字符串中的空字符(字符串以'\0‘结尾,这个'\0'即空字符)
10、%p
以16进制形式输出指针
11、%n
到此字符之前为止,一共输出的字符个数,不输出文本
12、%%
不进行转换,输出字符‘%’(百分号)本身
13、%m
打印errno值对应的出错内容,(例:printf("%m
");)
参考资料来源:百度百科-printf

c语言中%c格式符表示输出的是字符 ,%s格式符表示输出的是字符串。
C语言基本构成:
1.数据类型
C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
2.常量与变量
常量其值不可改变,符号常量名通常用大写。
变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。
3.数组
如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。
4.指针
如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 *(此处特指单目运算符 * ,下同。C语言中另有 双目运算符 *) 则是取内容操作符,意思是取这个内存地址里存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一。
指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。
指针是一把双刃剑,许多操作可以通过指针自然的表达,但是不正确的或者过分的使用指针又会给程序带来大量潜在的错误。
5.字符串
C语言的字符串其实就是以'\0'字符结尾的char型数组,使用字符型并不需要引用库,但是使用字符串就需要C标准库里面的一些用于对字符串进行操作的函数。它们不同于字符数组。使用这些函数需要引用头文件。
6.文件输入/输出
在C语言中,输入和输出是经由标准库中的一组函数来实现的。在ANSI C中,这些函数被定义在头文件;中。
7.标准输入/输出
有三个标准输入/输出是标准I/O库预先定义的:
stdin标准输入
stdout标准输出
stderr输入输出错误

你定义了两个char型的变量c1,c2,也就是说明系统分别给c1,c2分配了一个字符的空间,当你执行程序时,如果输入一个字符,回车,再输入一个字符,回车,
例如:a 回车,b 回车,结果是正常显示的,但你要是输入一个字符串,例如abcd,执行结果就是a,b

scanf("%s",&c2);这句话说明你可以输入一个字符串,但系统给你的空间只有一个字符,也就是说只有第一个字符赋给了c2。

关于%ls,我好像没有听过这种说法以,l是long的意思,用于长整形整数,我查了一下谭浩强的C语言课本,上面说l只是加在d,o,x,u前
上面是拷贝的 icehiker的。因为我非常同意这种解释。

#include <stdio.h>
main()
{
char c1,c2[20];
printf("请输入一个字符:");
scanf("%c",&c1);
printf("请再输入一个字符:\n");
scanf("%s",c2);
printf("您输入的字符是:%c\n",c1);
printf("您输入的字符是:%s\n",c2);
}
对于字符串,要用指针或者数组来初始化和输入。说实话。%ls没见过啊!

我看是没有问题的: 帮你运行了一下很正常,可能是你的运行环境吧...我用的是VC++6.0

请输入一个字符:a
请再输入一个字符:b
您输入的字符是:a
您输入的字符是:b
Press any key to continue

<未截屏>
若仍不正确的话,可改为如下:

#include <stdio.h>
main()
{
char c1;
char c2;
printf("请输入一个字符:");
scanf("%c",&c1);
printf("您输入的字符是:%c\n",c1);
printf("请再输入一个字符:");
scanf("%s",&c2);
printf("您输入的字符是:%c\n",c2);
}

首先,你有一个逗号是VC不识别的
其次,任何一个常量都有一个地址,当你输入了有效字符串(因为你用了%s),一些字符可能占据了你a的地址从而覆盖了a,所以你尽量不要用类型不匹配的量。

#include <stdio.h>
main()
{
char c1,c2;
printf("请输入一个字符:");
scanf("%c",&c1);
printf("请再输入一个字符:");
scanf("%c",&c2);
printf("您输入的字符是:%c\n",c1);
printf("您输入的字符是:%c\n",c2);
}

你定义了两个char型的变量c1,c2,也就是说明系统分别给c1,c2分配了一个字符的空间,当你执行程序时,如果输入一个字符,回车,再输入一个字符,回车,
例如:a 回车,b 回车,结果是正常显示的,但你要是输入一个字符串,例如abcd,执行结果就是a,b

scanf("%s",&c2);这句话说明你可以输入一个字符串,但系统给你的空间只有一个字符,也就是说只有第一个字符赋给了c2。

关于%ls,我好像没有听过这种说法以,l是long的意思,用于长整形整数,我查了一下谭浩强的C语言课本,上面说l只是加在d,o,x,u前

%d,%c,%s,%x分别是什么意思?
答:d,%c,%s,%x是程序汇编语言中的格式符,它们的含义:1、%d表示按整型数据的实际长度输出数据。2、%c用来输出一个字符。3、%s用来输出一个字符串。4、%x表示以十六进制数形式输出整数。d在C语言中的作用:c语言中, %d\n 是printf()函数的格式控制,%d是printf()函数的格式声明,表示结果只能输出十...

%*c%c在c语言中是什么意思
答:c:读入一个字符。c:读入一个字符,但忽略它(即不赋值给任何变量)。C语言%的其他应用含义 :1、%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。2、%d 读入十进制整数。3、%p 读入一个指针。4、%s 读入一个字符串,遇空格、制表符或换行符结束。

c语言中% s什么意思?
答:s在C语言中代表字符串型格式符。c和%s一般用在printf、sprintf等字符串格式化函数中,用于决定格式化参数的数据类型。如printf("%s", a)会将变量a作为字符串类型进行格式化。printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。printf()函数的调用格式为: printf("", )。语言...

C语言中printf函数中%s是什么意思
答:c在C语言中代表字符型格式符。s在C语言中代表字符串型格式符。c和%s一般用在printf、sprintf等字符串格式化函数中,用于决定格式化参数的数据类型。如printf("%s", a)会将变量a作为字符串类型进行格式化。printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。printf()函数的调用...

C语言中% c是什么意思?
答:s:输入输出为字符串 f:输入输出为浮点型 printf( stream, "%s%c", s, c );s -- 打印格式,按字符串方式输出变量s的值(字符串)到文件流stream c -- 打印格式,按ASCII字符方式输出变量c的值(即打印一个字符)到文件流stream :在C++中有两种意思,一种是取地址符,是单目运算符;另一种...

c语言中%c和%1s的区别
答:c是针对字符的. %1s是针对字符串的.所以, 在输出的时候 二者没什么区别.而输入的时候, %c会写一个字符 而%1s会读入字符后,再加一个结束符\0 所以 %1s传入至少要有两个字符的空间.

C语言printf函数中,%C和%s都可以输出字符串?
答:这句话是不对的,因为%c只能够输出单个字符,%s表示的是输出字符串,所以说这句话是错误的。printf()函数是式样化输出函数, 一般用于向准则输出设备按规定式样输出消息。正在编写步骤时经常会用到此函数。printf()函数的挪用式样为:printf(“<式样化字符串>”,<参数表>);。其中式样化字符串包括两...

啊c语言中,c%和s%什么情况用什么啊用??还有d+=s[i]是什么意思啊_百度知 ...
答:c和%s吧,字符的时候用%c,字符串的时候用%s,d+=s[i]等于d=d+s[i],表示,把d+s[i]的值复制给d

C语言里fscanf是如何处理%c与%s的
答:fscanf和scanf一样,只是前者一般从文件中读数据,后者从输入缓冲区读数据。在scanf中,%c只读取一个字符,%s是读取一个字符串——这时会跳过前面的' '、'\t'、'\n'等广义空格直接接收字符,一个接一个地把接收到的字符依次赋给对应的数组元素,当再次遇到' '、'\t'、'\n'等广义空格时认为...

c语言中的%c和%s
答:scanf("%s",&c2);这句话说明你可以输入一个字符串,但系统给你的空间只有一个字符,也就是说只有第一个字符赋给了c2。关于%ls,我好像没有听过这种说法以,l是long的意思,用于长整形整数,我查了一下谭浩强的C语言课本,上面说l只是加在d,o,x,u前 上面是拷贝的 icehiker的。因为我非常同意...