首页 理论教育 字符串输出与复制、比较

字符串输出与复制、比较

时间:2023-11-20 理论教育 版权反馈
【摘要】:所以用printf函数输出字符串时,不会自动换行。strcpy;其中,s2可以是字符串常量,也可以是字符串首地址。需要注意的是,s1必须定义得足够大,以便容纳复制过来的字符串。strcmp;两个字符串按ASCII码的大小从左到右逐个字符进行比较,直到出现不同的字符为止。

字符串输出与复制、比较

1.用字符串常量完成初始化

对于字符数组,还可以直接使用字符串常量来完成对其元素的初始化工作。C语言规定,以字符‘\0’作为字符串结束标识。即在遇到字符‘\0’时,表示字符串结束,由它前面的字符组成字符串。

例如:charch[8]=“Beijing”;

charch[8]={“Beijing”};

数组ch共有7个字符,但在内存中占8个字节,最后一个字节‘\0’是由系统自动加上的。程序依靠检测‘\0’的位置来判定字符串是否结束,而不是根据数组的长度来决定字符串长度。

2.字符串处理函数

(1)用scanf函数输入字符串。

scanf(“%s”,地址);

此函数从标准输入设备键盘上读取一个字符串(不可以包含空格),并将其存储到字符数组中。此函数的读取结束符是空格或换行符,即当遇到空格或换行符时,就停止读操作,并且空格或换行符不作为字符串的内容被读入。系统会自动用‘\0’来代替。

(2)用gets函数输入字符串。

gets(地址);

此函数从标准输入设备键盘上读取一个字符串(可以包含空格),并将其存储到字符数组中去。读取结束符是换行符(回车),即当遇到一个换行符时,就停止读操作,并且换行符不能够作为字符串的内容来存储。系统会自动用‘\0’来代替。

(3)用printf函数输出字符串。

printf(“%s”,字符串首地址);

此函数把字符数组中所存放的字符串中第一个‘\0’前面的内容,输出到标准输出设备中,但并不会输出‘\0’。所以用printf函数输出字符串时,不会自动换行。用printf函数输出字符串时,可以一次输出多个。

(4)用puts函数输出字符串。(www.xing528.com)

puts(字符串首地址);

此函数把字符数组中所存放的字符串输出到标准输出设备中,并用“\n”取代字符串的结束标志‘\0’。所以用puts函数输出字符串时,会自动输出一个换行符,不要求另加换行符。另外,该函数一次只能输出一个字符串。

(5)求字符串长度的函数strlen。

strlen(s);

该函数用于计算以s为起始地址的字符串的长度,并作为函数值返回。这一长度不包括串尾的结束标志‘\0’。

(6)字符串复制函数strcpy。

strcpy(s1,s2);

其中,s2可以是字符串常量,也可以是字符串首地址。该函数用于将s2完整地复制到s1所指存储空间中,函数返回s1的值,即s1串的首地址。需要注意的是,s1必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志‘\0’一起复制。

(7)字符串比较函数strcmp。

strcmp(s1,s2);

两个字符串按ASCII码的大小从左到右逐个字符进行比较,直到出现不同的字符为止。如果字符都相同,就认为两个字符串相同;如果出现不相同的字符,结果以第1个不同的字符的比较结果为准。比较结果有以下3种情况:

①如果s1=s2,函数返回0值。

②如果字符串1>字符串2,函数返回一个正数。

③如果字符串1<字符串2,函数返回一个负数。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈