字符串都被储存在char类型的数组中,数组由连续的存储单元构成。c语言用 \0 来标记字符串的结束。
例:char[40],只能存储39个字符,末位要加\0即空字符。
string()不计算\0.
#define NUM 1.5:编译程序时,程序中所有的NUM被替换成1.5,这被称为编译时替换,这样定义的常量也被称为明示常量。
注意:末尾不加分号,,一般用大写表示符号常量。
const int NUM=12;//NUM在程序中不能修改,值为12。
limts.h表示的明示常量
float.h中的明示常量
将FEL分别替换为DBL和LDBL,即可分别显示double和long double类型对应的明示常量。
转换类型一定要匹配,不然结构不正确。
printf()返回值:返回打印字符的个数,输出错误,则返回一个负值。
打印较长字符串:用反斜杠(\)加enter组合来断行,不要缩进。或引入字符穿连接。例"love" "love"和"lovelove"等价,要在双引号中”“即字符串中加空格,才会隔开。
读取基本变量类型,需要加上&
如把字符串读取到字符数组,不要使用&
例:sacf(”%d,%d“,&n,&m)表示要输入一个数字,一个逗号,再输入一个数字。
格式字符串中空白意味跳过下一个输入项前面所有的空白。
例sacf(”%d ,%d“,&n,&m)
除了%c,其他转化说明都会自动跳过输入值前面所有的空白。
对与格式字符串
scanf(”%c“,&ch):从输入的一个字符串开始读取,(不懂)
scanf(” %c“,&ch)则从第一个非空白字符开始读取。(不懂)
scanf()返回值:返回成功读取的项数。
printf()中例%*.*f表示,前一个*为字段宽度,后一个为小数位后几位。
scanf()中%*c表示跳过该输入
%[*\n]s表示可以输入带空格的字符串。
1. 不能正常运行,因为在空格初中断,姓被读取例。名还保留在缓冲区内,下次程序从上次中断的地方开始读取,即用%f读取名,会发生错误。
2. a:字符宽度和精度。b:关于转义字符,例 ‘\41‘其中41为八进制的41,‘\x41‘表示16进制的41。c:加上\。d:
7. 打印字宽为8的字符串前8位字符。%8.8s
8. 空白包括空格,制表符和换行符
1 输入姓名,转换为名,姓
#include <stdio.h> #define backspace "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"//为了退格 int main(void) { char surname[40]; char name[40]; printf("%Please enter your name____________________%s",backspace); scanf("%s %s",surname,name); printf("%s,%s",name,surname); return 0; }
2.
1 #include <stdio.h> 2 #include <string.h> 3 #define backspace "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b" 4 int main(void) 5 { 6 7 char name[40]; 8 printf("%Please enter your name____________________%s",backspace); 9 scanf("%[^\n]s",name); 10 int len=strlen(name)+3; 11 printf("\"%s\"\n",name); 12 printf("\"%20s\"\n",name); 13 printf("\"%-20s\"\n",name); 14 printf("\"%*s\"\n",len,name); 15 return 0; 16 }
3.
1 #include <stdio.h> 2 #include <string.h> 3 #define backspace "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b" 4 int main(void) 5 { 6 float num=0.0; 7 printf("%Please enter a float____________________%s",backspace); 8 scanf("%f",&num); 9 printf("输出%.1f或%.1e\n",num,num); 10 printf("输出%.3f或%.3e\n",num,num); 11 return 0; 12 }
6.
#include <stdio.h> #include <string.h> #define backspace "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b" int main(void) { char surname[20]; char name[20]; printf("%Please enter your surname____________________%s",backspace); scanf("%s",surname); printf("%Please enter your name____________________%s",backspace); scanf("%s",name); printf("%s %s\n",surname,name); printf("%*d %*d\n",strlen(surname),strlen(surname),strlen(name),strlen(name)); printf("%s %s\n",surname,name); printf("%-*d %-*d\n",strlen(surname),strlen(surname),strlen(name),strlen(name)); return 0; }
原文:https://www.cnblogs.com/suwencjp/p/12292057.html