07

您所在的位置:网站首页 c语言从哪里输入 07

07

#07| 来源: 网络整理| 查看: 265

知识要点

8.1 单个字符的输入输出

8.2 字符数组与字符串

8.3 字符串的输入和输出函数

8.4 字符串操作函数

8.5 二维字符串数组

8.1 单个字符的输入输出

C语言头文件“stdio.h”中定义了两个专门用于单个字符输入输出的函数getchar()和putchar()。

一、字符输入函数getchar()

作用是从输入设备(如键盘)读取一个字符。

函数getchar()没有参数,其一般形式为

getchar( );

其执行结果是从输入设备得到一个字符。例如:

char c; c=getchar();

从键盘输入:a

则字符型变量c等于字符’a’。上式等价于

scanf(“%c”,&c);

(1)getchar()一次只能接收一个字符。

例如scanf(“%c%c”,&c1,&c2);语句如果用getchar()函数实现只能写成:

c1=getchar();c2=getchar();

(2)getchar()可以接收回车字符。而scanf()将回车作为数据的间隔符或结束符。

(3)getchar()接收的字符可以不赋给任何变量。

二、字符输出函数putchar()

putchar()函数作用是将一个字符输出到输出设备(如显示器)。它的一般形式为

putchar(字符型或整型数据);

例如:char c=’A’; putchar(c);

结果是输出字符变量c的值。

函数putchar()的可以输出字符型变量、整型变量、字符型常量以及控制字符和转义字符。

putchar()函数一次只能输出一个字符,printf()函数可以同时输出多个字符

8.2 字符数组与字符串

字符数组

一个数组的元素是字符型,则该数组为字符数组

字符数组的赋值可以采用三种方法:

char c[8]; c[0]=’I’; c[1]=’ ’; c[2]=’l’; c[3]=’i’; c[4]=’k’; c[5]=’e’; c[6]=’ ’; c[7]=’C’; char c[8]; int i; for(i=0;i

字符数组除了在定义时初始化,只能一个元素一个元素的赋值。

字符数组中的全部内容输出,也只能一个元素一个元素的输出。

for(i=0;i

输入:

char c[9]; c[0]=’I’; c[1]=’ ’; c[2]=’l’; c[3]=’i’; c[4]=’k’; c[5]=’e’; c[6]=’ ’; c[7]=’C’;c[8]=’\0’; char c[9]; int i; for(i=0;istrcat(字符数组1,字符串2)

字符数组1不能是字符串常量,并且必须足够大,以便可以继续容纳字符串2的内容。

连接前字符数组1的’\0’将被字符串2覆盖,连接后生成的新的字符串的最后保留一个’\0’。

举一反三 :编写一个函数string_link(char str1[],char str2[ ])完成strcat()的功能。

strcmp(字符串1,字符串2)

作用是比较字符串1和字符串2。两个字符串从左至右逐个字符比较(按照字符的ASCII码值的大小),直到字符不同或者遇见’\0’为止。

如果全部字符都相同,则返回值为0。如果不相同,则返回两个字符串中第一个不相同的字符的ASCII码值的差,即串1大于串2时函数值为正,否则为负。

char str1[]=”abc”,str2[]=”abc”; char str3[]=”aBc”,str4[]=”cbcde”; printf(“%d,%d,%d\n”,strcmp(str1,str2),strcmp(str1,str3),strcmp(str1,str4)); 输出结果为:0,32,-2

strcmp(字符串1,字符串2)

#include #include int string_compare(char string1[],char string2[]) { int i=0; while(string1[i]= =string2[i]&&string1[i]!='\0') i++; return string1[i]-string2[i]; } void main() { char str1[]=”abc”,str2[]=”abc”; printf(“%d, %d\n”, strcmp(str1,str2),string_compare(str1,str2));} 运行结果 : 0,0

strlwr(字符串)

strlwr()的作用是将字符串中大写字母转换成小写字母。例如:

printf(“%s”,strlwr(“BeiJing”)); 输出:beijing

strupr(字符串)

strupr()的作用是将字符串中小写字母转换成大写字母。

问题

输入全班同学的姓名,如何定义?

一个同学的姓名用 一维字符数组表示

char name[30]=“Jacky”

多个同学可以用 二维字符数组表示

char name[2][30]={“Jacky”,”Andy”}

8.5 二维字符串数组

一维字符数组中存放一个字符串,

char s1[20]=”John”

如果有多个字符串时,例如1个班级的学生的姓名,则需要用到二维字符串,如name[30][20]可以描述30名学生的姓名(假设姓名不超过20个字符)。

如果有2个班级各30名学生,那么它们的姓名可以使用三维数组name[2][30][20]。

二维字符串数组的初始化

二维字符串数组的初始化,可以采用二维字符数组初始化形式或者字符串初始化形式,如:

char name[2][10]={{’J’,’o’,’h’,’n’,’\0’},{’M’,’a’,’r’,’r’,’y’,’\0’}}; char name[2][10]={{”John”},{”Marry”}}; char name[2][10]={”John”,”Marry”};

二维字符串数组的赋值和引用

由于二维数组可以看作是一个特殊的一维数组,它的数组元素是一个一维数组。所以二维字符串数组可以看作是这样一个一维数组,它的元素是一个字符串。

二维数组name[2][10]由name[0]和name[1]组成,name[0]代表字符串”John”、name[1]代表字符串”Marry”。

程序L8_9.C功能:从键盘输入三个学生姓名,并输出。 #include #include void main() { char name[3][30]; int i; for (i=0;i0) {strcpy(str,name[1]); strcpy(name[1],name[2]); strcpy(name[2],str); } for(i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3