C语言教程 第34页
学习C – C字符串函数 检查字符串数据长度 您可以使用string.h头中的strlen()函数来获取字符串数据的长度。 #include <stdio.h> #include <string.h> void string_length(); int main(int argc, const char* argv[]) { string_length(); return 0; } void string_length(){ char str[20] = "Hello world"; printf("str: %s\n",str); printf("length: %d\n",(int)strlen(str)); } 上面的代码生成以下结果。 索引字符 你可以通过位置索引得到一个字符。string_var [index]语法提供了这个功能。 注意0是第一个索引。 #include <stdio.h> #include <string.h> void string_explore(); int main(int argc, const char* argv[]) { string_explore(); return 0; } void string_explore(){ char str[15] = "Hello world"; int index; for(index=0; index<strlen(str); index++){ printf("%c\n",str[index]); } } 上面的代码生成以下结果。 连接字符串 我们可以将字符串连接成一个字符串。 我们可以从string.h头中使用strcat()函数。 #include <stdio.h> #include <string.h> void concatenating(); int main(int argc, const char* argv[]) { concatenating(); return 0; } void concatenating(){ printf("====concatenating===\n"); char str1[30] = "hello"; char str2[10] = "wolrd"; strcat(str1,str2); printf("result: %s\n",str1); } 上面的代码生成以下结果。 字符串转换为数字 字符串类型转换为数字,您可以使用sscanf()函数将String转换为数字。 #include <stdio.h> #include <string.h> void string_to_numeric(); int main(int argc, const...
学习C – C控制台输入 输入格式控制字符串 下表列出了scanf函数的转换字符及其含义。 转换字符 含义 d 将输入读取为带符号的十进制整数。 i 将输入读取为有符号整数。如果输入从0开始,则输入被假定为八进制。如果输入以0x或0X开始,则假设为十六进制输入;否则为十进制输入。 o 读取输入,假设它是一个带符号的八进制整数。 u 将输入读取为无符号整数。 x 将输入读取为带符号的十六进制整数。 c 读取字段宽度指定的字符数为类型char,包括空格。如果字段宽度规范不存在,将读取一个字符。要忽略前面的空格,请在格式规范之前加一个空白字符。 s 读取一串连续的非空白字符作为类型char,从下一个非空白字符开始。 [] 从方括号中的指定集中读取字符。集合中没有找到的第一个字符结束输入。%[] ab]读取字符,只要它们是a,b或。只要不是a,b或],%[^] ab]读取字符。 a,A,e,E,f,F,G 或 g 将输入转换为float类型。输入中的符号,小数点和指数是可选的。 % 读取一个%字符。跳过%字符是%%。 p 读取输入作为指针。参数应为void **类型。 n 没有读取输入,但从键盘读取的字符数存储在参数中。 下表列出了转换规格中的选项示例。 规范 描述 %lf 读取下一个值作为double类型。 %*d 读取下一个整数值,但不要存储它。 %15c 读取接下来的15个字符作为类型char。 \n%c 读取下一个字符为类型char忽略空格字符。 %10lld 读取接下来的十个字符作为long long类型的整数值。 %Lf 读取下一个值作为long double类型的浮点值。 %hu 读取下一个值作为无符号短类型。 #include <stdio.h> int main(void) { int i = 0; int j = 0; int value_count = 0; float fp1 = 0.0f; printf("Enter: fp1 = 3.1 i = 7 8\n"); printf("\nInput:"); value_count = scanf("fp1 = %f i = %d %d", &fp1, &i , &j); printf("\nOutput:\n"); printf("Count of values read = %d\n", value_count); printf("fp1 = %f\ti = %d\tj = %d\n", fp1, i, j); return 0; } 上面的代码生成以下结果。...
学习C – C控制台输出 要使用C在控制台上显示消息,请使用printf()在控制台上写入消息。 printf()可以传递参数,使用%d表示整型数字,%f表示浮点数。 对于char数据类型,我们可以使用%c来传递参数。 这里是一个示例代码 #include <stdio.h> int main() { int n = 10; float m = 1.875; char c = "A "; printf("%d \n",n); printf("%f \n",m); printf("% .2f \n",m); printf("% .3f \n",m); printf("%c \n",c); return 0; } 上面的代码生成以下结果。 注意 您可以在%f上看到写入6位十进制数字的浮动数据。 您可以通过在点(.)后面传递数字来指定十进制数字,例如%.2f和%.3f。 //some floating-point combinations #include <stdio.h> int main(void) { const double RENT = 1234.99; // const-style constant printf("*%f*\n", RENT); printf("*%e*\n", RENT); printf("*%4.2f*\n", RENT); printf("*%3.1f*\n", RENT); printf("*%10.3f*\n", RENT); printf("*%10.3E*\n", RENT); printf("*%+4.2f*\n", RENT); printf("*%010.2f*\n", RENT); return 0; } 上面的代码生成以下结果。 printf格式 printf()函数的原型是: int printf_s(char *format, . . .); 第一个参数是格式控制字符串。此参数的参数通常作为显式字符串常量传递给函数。 函数的可选参数是要按顺序输出的值。数字和类型必须与格式转换说明符对应。 下表显示了可选输出标志字符如何影响输出。 字符 使用 + 确保有符号输出值之前总是有一个加号或减号。默认情况下,只有负值有一个符号。 – 指定输出值左对齐,并填充右边的空格。输出的默认定位是正确的。 0 指定整数或浮点值应用零填充而不是空格,以填充左侧的字段宽度。 # 确保:0将在八进制输出值之前,0x或0X在十六进制输出值之前,浮点输出值将包含小数点,对于g或G浮点转换字符,尾随零将不会省略。 Space 指定正值或零值前面加一个空格而不是加号。 可选的field_width指定输出值的最小字段宽度。 如果该值需要更多字符,则该字段将被简单扩展。 如果它要求小于指定的最小值,则填充空白,除非字段宽度前面有0标志。 可选的精度说明符通常用于浮点输出值,由一个后跟一个整数的句点组成。 .n的说明符表示要为浮点值输出n个小数位。 如果要输出的值大于n个有效数字,则舍入。 如果将其用于整数转换,则它指定出现在输出中的最小位数。 字段大小 可选大小标志如下表所示。 Flag 影响 h 以下整数转换说明符适用于短或无符号短参数。 hh 以下整数转换说明符适用于signed char或unsigned char参数。...
学习C – C关键字 在标准ANSI C编程语言中定义了32个词作为关键字。 这些关键字具有预定义的用途,不能用于C程序中的任何其他目的。 编译器使用这些关键字。 关键词 描述 auto 将局部变量定义为具有本地生存期 break 将控制权从编程结构中传递出去 case 分支控制 char 基本数据类型 const 不可修改的值 continue 控制循环开始 default 分支控制 do Do While循环 double 浮点数据类型 else 条件语句 enum 定义一组int类型的常量 extern 表示其他地方定义的标识符 float 浮点数据类型 for For循环 goto 无条件地转移程序控制 if 条件语句 int 基本数据类型 long 类型修饰符 register 将声明的变量存储在CPU寄存器中 return 退出函数 short 类型修饰符 signed 类型修饰符 sizeof 返回表达式或类型大小 static 在范围结束后保留变量值 struct 将变量组成单个记录 switch 分支控制 typedef 创建新类型 union 组变量占用相同的存储空间 unsigned 类型修饰符 void 空数据类型 volatile 允许通过背景例程更改变量 while 当条件为真时重复执行程序 例子 #include <stdio.h> int main(void) { float fRevenue, fCost; fRevenue = 0; fCost = 0; /* profit = revenue - cost */ printf("\nEnter total revenue: "); scanf("%f", &fRevenue); printf("\nEnter total cost: "); scanf("%f", &fCost); printf("\nYour profit is $%.2f\n", fRevenue - fCost); return 0; } 上面的代码生成以下结果。 注意...
学习C – C控制符 您可以使用单个printf()语句更改程序以分开的行显示两个句子。 #include <stdio.h> int main(void) { printf("This is a test.\nThis is the second line.\n"); return 0; } 在第一句之后,在文本末尾,你插入了\n 。 组合 \n 是表示换行符的转义序列。 这将导致输出光标移动到下一行。 反斜杠(\)表示转义序列的开始。 反斜杠后的字符表示转义序列所代表的字符。 \n 是换行符。 上面的代码生成以下结果。 注意 因为反斜杠本身是一个特殊字符,要在文本字符串中指定反斜杠,请使用两个反斜杠: \\ 。 #include <stdio.h> int main(void) { printf("\"This is a test.\"\nShakespeare\n"); return 0; } 输出双引号是因为您在字符串中使用转义序列。 Shakespeare出现在下一行,因为在 \“后面有一个 \n 转义序列。 您可以在输出字符串中使用 \a 转义序列来发出哔声来表示有趣或重要的信号。 上面的代码生成以下结果。 例2 #include <stdio.h> int main(void) { printf("Be careful!!\n\a"); return 0; } \a 序列表示“响铃”字符。 上面的代码生成以下结果。 注意2 下表显示了您可以使用的所有转义序列。 转义序列 描述 \n 表示换行符 \r 表示回车 \b 表示退格 \f 表示换页字符 \t 表示水平制表符 \v 表示垂直选项卡 \a 插入响铃(警报)字符 \? 插入问号(?) \” 插入双引号(“) \” 插入单引号(‘) \\ 插入反斜杠(\) 以下代码显示了如何使用表中列出的转义字符。 #include <stdio.h> // Include the header file for input and output int main(void) { printf("Hi there!\n\n\nThis program is a bit\n"); printf(" longer than...
C 练习实例65 C 语言经典100例 题目:一个最优美的图案(在TC中实现)。 程序分析:无。 程序源代码: // Created by www.w3cschool.cn on 15/11/9. // Copyright © 2015年 W3Cschool教程. All rights reserved. // #include "graphics.h" #include "math.h" #include "dos.h" #include "conio.h" #include "stdlib.h" #include "stdio.h" #include "stdarg.h" #define MAXPTS 15 #define PI 3.1415926 struct PTS { int x,y; }; double AspectRatio=0.85; void LineToDemo(void) { struct viewporttype vp; struct PTS points[MAXPTS]; int i, j, h, w, xcenter, ycenter; int radius, angle, step; double rads; printf(" MoveTo / LineTo Demonstration" ); getviewsettings( &vp ); h = vp.bottom - vp.top; w = vp.right - vp.left; xcenter = w / 2; /* Determine the center of circle */ ycenter = h / 2; radius = (h - 30) / (AspectRatio * 2); step = 360...
C 练习实例56 C 语言经典100例 题目:画图,学用circle画圆形。 程序分析:无。 程序源代码: // Created by www.w3cschool.cn on 15/11/9. // Copyright © 2015年 W3Cschool教程. All rights reserved. // #include <graphics.h> //VC6.0中是不能运行的,要在Turbo2.0/3.0中 int main() { int driver,mode,i; float j=1,k=1; driver=VGA; mode=VGAHI; initgraph(&driver,&mode,""); setbkcolor(YELLOW); for(i=0;i<=25;i++) { setcolor(8); circle(310,250,k); k=k+j; j=j+0.3; } return 0; } C 语言经典100例
C 练习实例55 C 语言经典100例 题目:学习使用按位取反~。 程序分析:~0=1; ~1=0; 程序源代码: // Created by www.w3cschool.cn on 15/11/9. // Copyright © 2015年 W3Cschool教程. All rights reserved. // #include <stdio.h> int main() { int a,b; a=234; b=~a; printf("a 的按位取反值为(十进制) %d \n",b); a=~a; printf("a 的按位取反值为(十六进制) %x \n",a); return 0; } 以上实例输出结果为: 请输入整数: a 的按位取反值为(十进制) -235 a 的按位取反值为(十六进制) ffffff15 C 语言经典100例
C 练习实例33 – 质数(素数)判断 C 语言经典100例 题目:判断一个数字是否为质数。 程序分析:质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除。 程序源代码: // Created by www.w3cschool.cn on 15/11/9. // Copyright © 2015年 W3Cschool教程. All rights reserved. // #include<stdio.h> #include<math.h> #define MAX 1000 int prime[MAX]; int isPrimeNaive(int n) { if(n <= 1) return 0; for(int i = 2; i < n; i++) if(n % i == 0) return 0; return 1; } int isPrime(int n) { if(n<= 1) return 0; if(n == 2) return 1; if(n%2 == 0) return 0; int limit = (int)sqrt((double)n); for(int i = 3; i <= limit; i=i+2) { if(n % i == 0) return 0; } return 1; } void sieve() { prime[0] = 0; prime[1] = 0; for(int i = 2; i < MAX; i++) prime[i] =...
C 练习实例40 C 语言经典100例 题目:将一个数组逆序输出。 程序分析:用第一个与最后一个交换。 程序源代码: // Created by www.w3cschool.cn on 15/11/9. // Copyright © 2015年 W3Cschool教程. All rights reserved. // #include<stdio.h> #define N 10 int main() { int a[N]={0,1,2,3,4,5,6,7,8,9}; int i,t; printf("原始数组是:\n"); for(i=0;i<N;i++) printf("%d ",a[i]); for(i=0;i<N/2;i++) { t=a[i]; a[i]=a[N-1-i]; a[N-1-i]=t; } printf("\n排序后的数组:\n"); for(i=0;i<N;i++) printf("%d ",a[i]); printf("\n"); return 0; } 以上实例输出结果为: 原始数组是: 0 1 2 3 4 5 6 7 8 9 排序后的数组: 9 8 7 6 5 4 3 2 1 0 C 语言经典100例