版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、c语言笔记注意:在c语言中,关键字都是小写的。c语言简洁、紧凑,使用方便、灵活。 ansi c 一共只有32个关键字: auto break case default char const continuedo whiledoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedunsignedstaticvoidsizofvolatilestructswitchtypedefunion9种控制语句,程序书写自由,主要用小写字母表示,压缩了一切不必要的成分。turbo c扩充了 11个关键字:asm _cs _ds _e
2、s _ss cdecl far huge interrupt near pascal#define八进制以0开头,如0123,即(123)8十六进制以0x开头,如0123,即(123) 16整型:一个正数的补码和其原码形式相同,如10得0000000000001010一个负数的补码是取-10的绝对值10,对10的二进制形式取反加1,1111111111110101+1=1111111111110110signed int unsigned int short long charfloat单精度double 双精度,long double%d, %o,%x,%c,%s,一个整常量后面加一个字母l
3、或l,则认为是long intmain() / main是主函数的函数名,表示这是一个主函数。printf(世界,您好! n); / printf函数的功能是把要输出的内容送到显示器去显示 #include / include 称为文件包含命令#includemain()double x,s;定义两个实数变量,以被后面程序使用printf(input number:n);显示提示信息scanf(%lf,&x);从键盘获得一个实数 xs=sin(x);求x的正弦,并把它赋给变量sprintf(sine of %lf is %lfn,x,s); / 显示程序运算结果在本例中,使用了三个库函数:输入
4、函数 scanf,正弦函数sin,输出函数printf。sin函数是数学函数,其头文件为 math.h文件scanf和printf是标准输入输出函数,其头文件为stdio.hc语言规定,源程序中所有用到的变量都必须先说明,后使用c语言规定对scanf和printf这两个函数可以省去对其头文件的包含命令由于sin函数要求这两个量必须是双精度浮点型,故用类型说明符double来说明这两个变量scanf和printf这两个函数都由以下两部分组成:格式控制串“,参数表格式控制串是一个字符串,必须用双引号括起来,它表示了输入输出量的数据类型printf(sine of %lf is %lfn,x,s);
5、其中lf为格式字符,表示按双精度浮点数处理。它在格式串中两次现,对应了 x和s两个 变量。其余字符为非格式字符则照原样输出在屏幕上。在程序的每行后用/*和*/括起来的内容为注释部分,程序不执行注释部分。int max(int a,int b);/* 函数说明 */main()/* 主函数 */int x,y,z;/* 变量说明 */int max(int a,int b);/* 函数说明 */printf(input two numbers:n);scanf(%d%d,&x,&y);/* 输入 x,y 值*/z=max(x,y);/* 调用 max 函数*/printf(maxmum=%d,z
6、); /*输出 */int max(int a,int b)/* 定义 max 函数 */if(ab) return a;else return b; /*把结果返回主调函数 */从书写清晰,便于阅读,理解,维护的角度出发,在书写程序时应遵循以下规则:1 .一个说明或一个语句占一行。2 .用括起来的部分,通常表示了程序的某一层次结构。 一般与该结构语句的第一个字母对齐,并单独占一行。3 .低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更 加清晰,增加程序的可读性。空白符:空格符、制表符、换行符等统称为空白符在c语言中使用的词汇分为六类:标识符,关键字,运算符,分隔符,
7、常量,注释符等。1 .标识符(在程序中使用的变量名、函数名、标号等统称为标识符)c规定,标识符只能是字母 (az, az)、数字(09)、下划线(_)组成的字符串,并且 其第一个字符必须是字母或下划线。(1)标准c不限制标识符的长度,(!它受各种版本的c语言编译系统限制,同时也受到具体机器的限制。(2)在标识符中,大小写是有区别的。(3)标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便于阅读理解,作到 顾名思义2 .关键字(关键字是由c语言规定的具有特定意义的字符串,通常也称为保留字。用户定 义的标识符不应与关键字相同)(1)类型说明符:如前面例
8、题中用到的int,double等(2)语句定义符:if else就是条件语句的语句定义符(3)预处理命令字:include3 .运算符:4 .分隔符:在c语言中采用的分隔符有逗号和空格两种5 .常量:c语言中使用的常量可分为数字常量、字符常量、字符串常量、符号常量、转 义字符等多种。6 .注释符:c语言的注释符是以/*开头并以“*/结尾的串#define price 30 /*#define 定义 price 代表常量 30*/ price 是符号常量习惯上符号常量用大写,变量用写小写例如:整型变量a和b,可以进行求余运算:a%b (%是求余符号)若指定a和b为实型变 量,则不允许进行“求余”
9、运算.整型八进制以0开头的数是八进制.如0123表示八进制123,即(123)8,其值为1x82+2x81+3x80十六进制以 0x开头的数是十六进制 .如0x123表示十六进制123,即(123)16,其值为1x16 2+2x161+3x16 0在c编译系统,每一个整型变量在内存中占2个字节.实际上,数值是以补码表示的.一个正数的补码和其原码的形式是相同.而负数的补码是将该值的绝对值的二进制形式,按位取反再加1.例如:求-10的补码,取-10的绝对值为10,然后10的二进制为1010,对 1010(00000000 00001010)取反,11111111 11110101厂共占 16 个字
10、节,再加 1 为 11111111 11110110整数的16位中,最左面的一位是表示符号,该位为0表示数值为正,该位为1则数值为负signed int 有符号-32768-32767unsigned int 无符号 0-65535short int短整型long int长整型.不一样白微机,位数是不一样的.整型int%d ,%0, %x实型 float double%f字符型char 一个字符变量在内存中占一个字节%cprintf(n”,a,b,c);ddd : 1到3位8进制数所代表的字符如:如1(八进制)为65(二进制)的字符“a注意:“0或“000”是代表ascii码为0的控制字符,即
11、“空操作”字符.它将用在字符串中.xhh :1到2位16进制数所代表的字符n :换行,将当前位置移到下一行开头,ascii代码为10(十进制)t :水平制表(跳到下一个tab位置),制表区占8歹u, ascii代码为9(十进制)b :退格,将当前位置移到前一列,ascii代码为8(十进制)r :回车,将当前位置移到本行开头,ascii代码为13(十进制)f :换页,将当前位置移到下页开头,ascii代码为12(十进制) :反斜杠字符”,ascii代码为92(十进制):单引号(撇号)字符,ascii代码为39(十进制):双引号字符,ascii代码为34(十进制)字符串常量a是字符常量(是用一对单
12、引号括起来的),“a”是字符串常量(是用一对双引号括起来的)c规定在每一个字符串的结尾加一个字符串结束标志,是以字符0作为字符结束标志从ascii代码表中可以看至ij ascii码为0的字符是空操作字符”各类数值型数据间的混合运算如字符数据必定先转换为整数,short型转换为int型,float型数据在运算时一律先转换成双精度型,即是二个全是float型也要先转换成double型.char shortl fint funsigned flongfdoublefloat运算符优先级和结合性级别类别含义1运算符结合方向1强制转换、数组、 结构、联合圆括号()自左至右下标运算符指向结构成员运算符或
13、结构体成员运算符-或.2逻辑逻辑非 二!自右至左(单目运算符)字位按位取反增量自增(加一)+减量自减(减一)-指针地址与运算符(取地址)&指针运算符(取内容)*算术负号运算符(单目减)-长度计算长度计算sizeof3算术乘*自左至右(双目运算符)除/求余(取模)%4算术和指针运算加 减+-5字位左移6关系大于等于=百小于等于二小于y) z=x; else z=y;(2)函数调用语句:printf( this is a c statements );(3)表达式语句:a=3;(一个赋值表达式)(4)空语句:;(即只有一个分号语句)(5)复合语句: z=x+y; t=z/100; printf(%
14、fn ,t);输入输出函数#include 或“stdio.h /* 头文件 stdio.h*/scanf()输入函数printf()输出函数是系统提供的标准函数#include( 预编译命令)putchar(输出字符)getchar(输入字符)printf( 格式出)scanf(格式车入)puts(输出字符串)gets(输入字符串)c语言中include后用引号与尖括号的区别使用尖括号的话,编译时会先在系统include目录里搜索,如果找不到才会 在源代码所在目录搜索;使用双引号则相反,会先在源代码目录里搜索。这就意 味着,当系统里(如/usr/include/里)有一个叫做math.h的头
15、文件,而你的源代 码目录里也有一个你自己写的 math.h头文件,那么使用尖括号时用的就是系统 里的;而使用双引号的话则会使用你自己写的那个。所以建议:使用系统里提供的头文件时使用尖括号 使用自己编写的头文件时使用双引号 输出单个字符:# include main() char a,b,c;a= b ; b= o c= y;putchar(a); putchar(b); putchar(c);也可以输出转义字符如 :putchar( 101 ); putchar( );输入单个字符:getchar()函数没有参数,其一般形式为getchar()字符输入函数#include main() cha
16、r c;c=getchar(); putchar(c);格式输入输出函数printf( dn,x);%么按整型数据的实际长度输出%mc m为指定的输出字段的宽度,如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出.printf( 4d,%4dn,a,b);若 a=123,b=12345则a输出结果为:空格123 则b输出结果为:12345%ld么输出长整型数据若long a=1356739;printf(“9ld”,a);则a输出结果为:空格空格1356739%o是以八进制形式输出整数.%x是以十六进制形式输出整数.%u用来输出unsigned型数据,即无符号数,以十进制形式输出
17、.%c用来输出一个字符.char a= w ;printf(%c ,w);%s用来输出一个字符串.printf(%s,” china);%ms俞出的字符占m列,如字符串本身长度大于m则突破m的限制,全部输出字符串,若串长小于m,则左补空格.%-ms如果串长小于 m则在m列范围内,字符串向左靠,右补空格.%m.ns输出占m列,但只取字符串左端n个字符.这n个字符输出在 m列的右端,左补空格.%-m.ns输出占m列,但只取字符串左端 n个字符.这n个字符输出在 m列的左端,右补空 格.nm,则m自动取n值,即保证n个字符正常输出.%f用来输出实数(单精度和双精度),以小数形式输出.%e以指数形式输
18、出实数,输出数据所占的宽度和数字部分小数位数由系统自动指定给出6位小数,指数部分占5歹u (如e+002),其中e占一位,指数符号占一位,指数占3位%g用来输出实数,它根据数值大小自动选f格式或e格式.scanf 输入函数 scanf( %d,%d,%d,&a,&b,&c)#include main() int a,b,c;scanf(%d,%d,%d,&a,&b,&c);/*输入这三个数的时候,”逗号也要输的.*/printf(%d,%d,%dn,a,b,c);getch();若:scanf(%d%d%d,&a,&b,&c); 输入 a,b,c 三个数时,12 空格 13 空格 88scan
19、f( 3d%3d ,&a,&b);输入:123456,系统自动把123赋给a,456赋给bscanf( %3c ,&ch);输入:abc,由于ch只能容纳一个字符,系统就把第一个字符a赋给ch如果 淅面有一个“* 附加说明符,表示跳过它指定的列数.如:scanf(2d %*3d %2d ,&a,&b);输入:12空格345空格67回车,将12赋给a,%*3d表示读入3位整数但不赋给任何 变量.然后再读入2位整数67赋给b.第二组数据345被跳过.在输入数据进,遇以下情况时数据认为结束:1、遇空格,或按回车或跳格(t ab)键;2、按指定的宽度结束,如“ 3d”,只取3列;3、遇非法输入;例:输
20、入三角形的三边长,求三角形面积 s=1/2(a+b+c) area二 根号s(s-a) (s-b)(s-c)float a,b,c,area,s; scanf(%f,%f,%f ,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2fn,a,b,c,s);printf( area=%7.2fn ” ,area);if语句if与else的配对关系:else总是与它上面的最近的if配对.if与else的数目一样时,采用if()main()if()语句1 int
21、 x,y;else语句2scanf(%d,&x);elseif(x0) y=-1;if()语句3else if(x=0) y=0; else y=1;else语句4printf(x=%d,y=%dn” ,x,y);if与else的数目不一样时,采用加花括号来确定getch();/*能显示输出*/if()if()语句1else语句2判断某一年是否闰年其中一种方法main()int year,leap;printf(input year:);scanf(%d,&year);if(year%4=0)if(year%100=0)if(year%400=0) leap=1;else leap=0;els
22、e leap=1;else leap=0;if(leap) printf(%d yesn,year);else printf(%d no yearn,year);getch();/*判断某一年是否闰年另一种方法*/#include void main() int year;printf(input year:);scanf(%d,&year);if(year%4=0)&(year%100!=0)|(year%400=0) printf(%d yesn,year);else printf(%d no yearn,year);getch();条件运算符(三目运算符,自右至左)main() int
23、x,y,max;scanf(%d,%d,&x,&y);max=(xy) ? x:y; /* 如果(ab)条件为真,则条件表达式取值 a,否则取值b*/printf(%dn,max);/*输入一个字符getch();/*能显示输出*/,判断大小写,如果是大写,转换成小写,并输出最后得到的字符*/main() char ch;scanf( %cif(ch=a/* ch=(ch=else printf(,&ch);& ch= z ) ch=ch+32; printf( %cn ,ch);/* 去掉花括号将编译出错 */a & ch60n );break ;/*求方程的解*/#include /*输入
24、输出函数要调用,也可以不写*/#include /*用到绝对值函数和开根号函数,所以要调用*/main()float a,b,c,disc,x1,x2,realpart,imagpart; /* scanf(%f,%f,%f,&a,&b,&c);/*printf(the equation);/*定义类型*/输入方程的三个数*/显示the equation, 意思是方程*/if(fabs(a)=pow(10,-6)printf(is not a quadratic); /* 对 a 求绝对值,判断a=0(fabs(a)=le-6)就不是二次方程 */else disc=b*b-4*a*c; /*
25、计算b*b-4*a*c 的值是等于还是小于还是大于0*/if(fabs(disc)pow(10,-6)/*大于0后有两个不等实根*/x1=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);printf(has two equal roots:%8.4f and %8.4fn,x1,x2);elserealpart=-b/(2*a); /*小于0后有两个共轲复根的实部 */imagpart=sqrt(-disc)/(2*a);printf(has complex roots:n); /*has complex roots是有复杂的根源的意思 */print
26、f(%8.4f+%8.4fin,realpart,imagpart);printf(%8.4f-%8.4fin,realpart,imagpart);getch();说明:le-6 :是科学计数法,表示 10的-6次方,用函数是pow(10,-6) 不用0来判断,用一个 很小的数就认为disc是0,是为了产生误差,因为实数在计算和存储时会有一些微小的误差。/* 算运费*/#include main()int c,s;float f,d,p,w; /*总运费f(freight 货物),基本运费p(price 价格),货物重w(weight重量),距离 s,折扣 d(discount)*/prin
27、tf(input number:n);scanf(%f,%f,%d,&p,&w,&s);if(s=3000) c=12;else c=s/250;switch(c)case 0:d=0;break;case 1:d=2;break;case 2:case 3:d=5;break;case 4:case 5:case 6:case 7:d=8;break;case 8:case 9:case 10:case 11:d=10;break;case 12:d=15;break;f=p*w*s*(1-d/100.0);printf(freight=%fn,f);getch();goto语句为无条件转向
28、语句,形式:goto语句标号;语句标号用标识符表示,它的定名规则与变量名相同.即字母,下划线,数字.一般来说来两种用途:1、与if语句一起构成循环结构;2、从循环体中跳转到循环体外.但在c语言中可以用break语句和continue语句跳出本层循环和 结束本次循环.用if语句和goto语句构成循环,求1+2+3+.+99+100#include main()int sum=0,i=1;loop: if(i=100) sum=sum+i;i+;goto loop;printf(sum=%dn,sum);getch();while语句用来实现当型循环结构,一般形式:while(表达式) 语句当表达
29、式非0值时执行while语句中的内嵌语句,先判断表达式后执行语句/* 用 while 语句构成循环,求 1+2+3+ .+99+100 */#include main()int sum=0,i=1;while(i=100) sum=sum+i;i+;/*如果不加花括弧则 while语句的范围只到sum=sum+i */printf(sum=%dn,sum);getch();do 循环体while (表达式)do-while是循环语句特点是先执行循环体,然后判断循环条件是否成立/* 用 do-while 语句构成循环,求 1+2+3+ .+99+100*/#include main()int s
30、um=0,i=1;dosum=sum+i;i+;while(i=100);printf(sum=%dn,sum);getch();按 esc 后一个一个显示输出/* 用 do-while 语句构成循环,求 1+2+3+ .+99+100*/#include main()int sum=0,i=1;dosum=sum+i;i+;printf(sum=%dn,sum);getch();while(i=100);printf(sum=%dn,sum);getch();for 语句格式 : for( 循环变量赋初值; 循环条件 ; 循环变量增值;) 语句 ;表达式 1表达式 2 表达式 3先求解表达式
31、1。再求解表达式2, 若值为真 , 则执行 for 语句中的内嵌语句 , 然后就求解表达式3, 若为假则结束循环。1 、 “表达式 1 ”可以省略for(; 表达式2;表达式3) 语句; /* 分号不能少*/2 、 “表达式2 ”省略即不判断循环条件,循环将无终止地进行下去。3 、 “表达式3”也可以省略,如 i+ 不放在“表达式3” ,而作为循环体的一部分效果是一样的。4、全部省略么不赋值,不判断,不增量,无终止地执行循环体。5、for (i=0;(c=getchar()!=n ; i+=c;)终端接收一个字符给c,判断表达式的值是否不等于 n (换行符)for (;(c=getchar()
32、!= n ;) 则输入 computer 输出则也是computerbreak 语句和 continue 语句break 是终止整个循环的执行; continue 只是结束本次循环;if(fabs(a)=pow(10,-6) 的意思是 if(a=0)y头文件:#include pow(x,y) 函数是求 x的值,几的几次方。pow(x,y)函数是计算的值 函数原型:double pow(double x,double y )abs(x)函数是求整数x的绝对值函数原型:int abs( int x )fabs(x)函数是求双精度实数的绝对值函数原型:double fabs( double x )
33、sqrt(x)函数是开根号子函数原型:double sqrt(double x)摄氏温度c=5/9(f华氏温度-32)一维数组类型说明:数组名常量表达式如:int a10;表示数组名为a,此数组有10个元素。数组必须先定义后使用。c语言规定只能逐个引用数组元素而不能一次引用整个数组。main() int i,a10;ai=i;for(i=9;i=0;i-)printf(out number %dn ,ai); /* 从 9 到 0 输出 */for(i=0;i10;i+)getch();/*输出数字101到 110*/*输入数字,从此数字后输出10个数*/#include #include m
34、ain()main() int i,t=100,a10; int i,t,a10;for(i=0;i=9;i+)printf(intput number:);scanf(%d,&t);t+ ;for(i=0;i=9;i+)ai=t;t+ ; ai=t;printf(out number %dn,ai); printf(out number %dn,ai);getch();getch();一维数组初始化定义成:int a10=0,1,2,3,4,5,6,7,8,9;定义成:int a10=0,1,2,3,4,5; 表示只给前面5个元素赋初值,后面的5个元素值为0/*后一个数是前二个数之和,fib
35、onacci数列*/#include main() int a20=1,1;int i;for(i=2;i20;i+) ai=ai-2+ai-1;for(i=0;i20;i+) if(i%5=0) printf( n” );printf( 12d ,ai);getch();#include main() long int a30=1,1;int i;for(i=2;i30;i+) ai=ai-2+ai-1;for(i=0;i30;i+) if(i%5=0) printf(n);printf(%12ld,ai); getch(); 起泡法对10个数排序(由小到大):将相邻的两个数比较,将小的调到
36、前头。 main() int a11;int i,j,t;printf(inpuf 10 numers :n);for(i=1;i11;i+) scanf(%d,&ai);printf(“n ”);for(j=1;j=9;j+) /*因为10个数,所以要要循环j=10-1次*/for(i=1;iai+1) t=ai; ai=ai+1; ai+1=t;printf(the sorted numbers :n);for(i=1;i=10;i+) printf( n ,ai);getch();二维数组类型说明:数组名常量表达式常量表达式如:float a34;3行4列c语言对二维数组采用这样的定义,
37、可以把二维数组看作是一种特殊的一维数组:它的元素又是一 个一维数组。可以看作是一个一维数组它有3个元素a0, a1, a2每个元素又包含有 4个元素的一维数组。二维数组初始化int a34= 1,2,3,4,5,6,7,8,9,10,11,1zint a34= 1,2,3,4,5,6,7,8,9,10,11,12;a34=1,5,9;只对各行第1列赋值,其余元素值自动为 0/*将二维数组彳f和列互换,#include stdio.hmain()int a23=1,2,3,4,5,6;int b32,i,j;printf(array a:n); for(i=0;i=1;i+) for(j=0;j
38、=2;j+)printf(%6d,aij); bji=aij; /* printf(n);printf(array b:n); /* for(i=0;i=2;i+) for(j=0;j=1;j+) printf(%6d,bij); printf(n); getch();存到另一个二维数组*/*array/*/*阵列*/行*/列*/赋值给bji 值*/以下是数组b输出*/for(j=0;j=2;j+) for(i=0;i=1;i+) printf(%6d,bji);printf(n);/*左右两部分输出结果一样的*/* 一个3x4矩阵,求出其中最大值的那个元素的值及所在的行号和列号*/#incl
39、ude stdio.hmain()int i,j,row=0, colum=0,max; /*row 行 排 colum 列 */int a34=1,2,3,4,9,8,7,6,-10,10,-5,2;max=a00;for(i=0;i=2;i+)for(j=0;jmax) max=aij;row=i;colum=j;pritntf(max=%d,row=%d,colum=%dn ,max,row,colum);getch();字符数组:用来存放字符数据的数组,一个元素存放一个字符.初始化 char c10;c0= i ;c1=c2= a; c3= m; c4= c5= h; c6= a;c7
40、= p; c8= p; c9= y;字符型与整型是互相通用,所以也可以定义int c10; 初始化:char c10=i,m, h-ap r , v ;如果初值个数小于数组长度,将剩下的元素自动定为空字符“0 ”也可以定义二维字符数组char a55=,;单引号中间就是想赋的值c语言中将字符串作为字符数组来处理。c语言规定了一个“字符串结束标志”,以字符0 代表。系统对字符串常量也自动加一个0 作为结束符。说明:0代表ascii码为0的字符,是一个不可以显示的字符,而是一个“空操作字符”单个字符作初值用单引号,字符串是用双引号。char c10= china” ; 前面 5 个元素为c, h
41、, i , n , a,第 6个为0 ,后 4 个元素为空字符,所以也是0 字符数组的输入输出逐个字符输入输出,用格式符“ c”输入或输出一个字符。将整个字符串一次输入或输出,用格式符s输入或输出一串字符。输出字符不包括结束符0 用s格式符输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素名。如写成printf(%s,c0); 是不对的。应为:printf(%s,c);定义:char a13; scanf( %s,a);若输入:howare you?回车 而只将第一个空格前的 “how送到a中。注意:scanf函数中输入项是字符数组名。输入项是字符数组名时,不要再加地址符&,
42、因为在c语言中数组名代表该数组的起始地址,scanf( s,&a);这样的写法是不对的。printf(%6 ,c);可以输出数组c的起始地址。puts(字符数组,输出字符串)char str口=chinanbeijing ;puts(str);gets(字符数组,输入字符串)定义:char str口;gets(str);若输入:computer回车,将所输入的字符串送给字符数组str , 8个字母加一个自动加上去的0共9个字符送入str o注意:puts和gets函数只能输入或输出一个字符串。不能写成:puts(str1,str2)或gets(str1,str2)strcat(字符数组1,字符
43、数组2)是字符串连接,作用:连接两个字符数组中的字符串,把字符2接到字符1的后面,结果放在字符数组 1中。字符数组1必须足够大,以便容纳连接后的新字符串。char str130= people s republic of ;char str2= china ;printf(%s,strcat(str1,str2);输出:people s republic of chinastrcpy(字符数组1,字符串2)是字符串复制。作用:将字符串2复制到字符数组1中去。字符数组1必须足够大,以便容纳被复制的字符串。字符数组1必须写成数组名形式(如 str1 ),字符串2可以是字符数组名也可以是一个字符串常
44、量,如strcpy(str1, “china);复制时连同字符串后面的0 一起复制到字符数组1中。不能用赋值语句将一个字符串常或字符数组直接给一个字符数组.如:stu=china;和stu=st都是不合法的。用赋值语句只能将一个字符赋给一个字符型变量或字符数组元素。如: char a5,cl1,cl2; cl1=a;cl2= b ; a0= c; a1= h; 以此类推。可以用strncpy函数将字符串2中前面若干个字符复制到字符数组1中去。如:strncpy(str1,str2,2);strcmp(字符串1,字符串2)是字符串比较。作用:比较字符串1和字符串2。对两个字符串自左至右逐个字符相
45、比(按 ascii码大小比较)直到出现不同的字符或遇到 0为止 比较结果由函数值带回:1、如果字符串1=字符串2,函数值为02、如果字符串1字符串2,函数值为正整数3、如果字符串1字符串2,函数值为负整数注意:对两个字符串比较,不能用以下形式:if(str1= =str2) printf( yes);而只能用 if(strcmp(str1,str2)=0) printf(yes);/*输入slzz22222200000正确后显示*/#include stdio.hmain()char str1=slzz22222200000;char str216;printf(input mi ma:n);
46、scanf(%s,str2);if(strcmp(str1,str2)=0) printf(i love you);else printf(no no no no no no no no no);getch(); strlen(字符数组)是测字符串长度。作用:用来测试字符串长度的函数。函数的值为字符串的实际长度,不包括0在内。char str10= china ; printf(%d,strlen(str);strlwr(字符串)是字符串小写。作用:将字符串中大写字母换成小写字母。/*将字符串中大写字母换成小写字母 */#include stdio.hmain()char str16=china wo a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年科教科工作计划(5篇)
- 智能电网中的电力电子转换器考核试卷
- 医疗机器人与专业技能培训考核试卷
- 文化创意产业技能提升
- 文化遗址保护性拆除合同
- 大型机械设备质检聘用合同样本
- 保安服务电线电缆施工合同
- 超市促销临时工劳动合同书
- 钢筋工程进度合同
- 基建安全质量监督检查制度
- (新版)粮油仓储管理员职业鉴定理论考试题库(含答案)
- 2024-2025学年沪科版中考数学模拟试卷及答案
- 2024发电企业安全风险分级管控和隐患排查治理管理办法
- 2024-2030年中国甲硫基乙醛肟行业市场行情监测及发展前景研判报告
- 《普通高等学校军事课教程》课件第5章
- 第四章运动和力的关系单元教学设计
- 第五单元写作《如何突出中心》 统编版语文七年级上册
- JTS-131-2012水运工程测量规范
- 光伏业务员合同协议书
- 出租车行业服务标准制定
- 2024年军队文职统一考试《专业科目》管理学试卷试题真题
评论
0/150
提交评论