大家好,今天小编关注到一个比较有意思的话题,关于c语言字符%的问题,于是小编就整理了5个相关介绍c语言字符%的解答,让我们一起看看吧。
- c语言中两个%%代表什么意思?字符串“%%”的长度是多少?
- 格式字符%d与%c的关系是什么?
- 97在C语言里属于字符还是字符串?
- c语言试题:编写一个程序,将输入的数字字符转换成数字并输出。提示:对于数字字符ch,直接使用(int)ch?
- c语言中%%什么意思?
c语言中两个%%代表什么意思?字符串“%%”的长度是多少?
C语言格式化描述字符串中的*在scanf和printf中有不同的含义。
例如 scanf("%*d%d", &a)读取输入"1 2",那么a的值是2,第一个%*d对应的1就被丢弃掉了。
在printf中,%*d将和参数列表中的两个参数对应,第一个参数为输出长度。例如printf("%*d", 5, 123)输出的结果是" 123",会在前面补足两个空格,凑成5位。
回到答主的问题,两个描述符是针对字符和字符串,如果在printf中是额外使用一个参数,指定字符/字符串的最小输出宽度,而在scanf中则是跳过一个字符或者字符串。
ps: 在printf中还可以使用%.*s,这种情况下会如果指定的输出宽度小于字符串的长度,会截取前缀。即 printf("%.*s", 5, 1234567)会得到"12345"。
格式字符%d与%c的关系是什么?
二者没有直接关系。就好像a男子,在家里身份是儿子,在学校身份是学生。你说儿子和学生是什么关系?
肯定没有直接关系。
同理,字符'a',用%d(a的ASCII码形式)表示是***,用%c表示(a的字符形式)是'a',%d和%c没有直接关系。他们只是对同一字符的不同表现形式而已。
***在C语言里属于字符还是字符串?
***'表示的是八进制0***所对应的字符,在ASCII表中'\***'没有对应的字符,所以在编译的时候会警告,会输出一个不是自己期望的字符,但是在输出的时候,例如:'\41'就会输出为!,因为在ASCII中!的八进制是041,所以会输出!
c语言试题:编写一个程序,将输入的数字字符转换成数字并输出。提示:对于数字字符ch,直接使用(int)ch?
#include <stdio.h>int main(){ char ch; scanf("%c",&ch); printf("%d",ch - '0'); return 0; }可以不用提示的方法吗?要是非要把提示用上去或许可以这样#include <stdio.h>int main(){ char ch; scanf("%c",&ch); printf("%d",int(ch)- int('0')); return 0; }
c语言中%%什么意思?
% 单列出来就是取模运算符%%没有特殊含义但,在格式化IO语句,如Scanf/Printf/Format等之中,百分号是特殊格式化字符%n 回车%d 输出整数%% 输出一个百分号还有很多,可以参考格式化语句的说明。
这样两个%一起出现一般是在输出语句中,例如:printf("%%d",6);这里第一个%就是一个普通字符,而后面的%d就是一个格式说明符,用于输出十进制整数。我们知道在输出函数printf中输出格式控制字符串中普通字符原样输出,所以第一个%直接输出,后面的%d就会将输出项的值6按照十进制整数输出也就是6,连以来就是%6,用来输出百分数。
到此,以上就是小编对于c语言字符%的问题就介绍到这了,希望介绍关于c语言字符%的5点解答对大家有用。