(3)如果数组长度大于字符串实际长度,也只输出到遇‘\0’时结束(即若一个字符数组中 包含一个以上的“\0’,则遇到第一个时输出就结束)。如: printf(“%sn ABCD\ OEFGH”):只输出ABCD 字符数组的输入 (1)用格式符“%s”控制的 scanf(): 如: static char c[6]: scanf(“%s”,c) 再如 tatic char strl[5], str2[5], str 3 [51 scanf(“%s%s%s”,strl,str2,str3);/*不能写成&str1*/ 输入数据流为: How are you? tr1、str2、str3分别接收到“How”、“are”、“you?”, 且在各个字符串的最后自动加“\0 如果利用一个 scanf函数输入多个字符串时,则以空格分隔 (2)用gets() char ch[16]: gets(ch) 注意 ①gets一次只能输入一个字符串; ②自变量应是数组名,而不能是数组元素名 ③要求从键盘上输入一个字符串直到遇到换行符为止,系统会自动把换行符换成“\0”加在字符串末 与 scanf不同,输入字符串中的空格也会被接收。 字符串处理函数 puts(字符数组) 功能:将一个以“\0’结束的字符序列输出到终端 static char str[]=“ China”:puts(str); 说明:输出的字符串中可含转义字符
(3)如果数组长度大于字符串实际长度,也只输出到遇‘\0’时结束(即若一个字符数组中 包含一个以上的‘\0’,则遇到第一个时输出就结束)。如:printf(“%s\n”, “ABCD\0EFGH”); 只输出 ABCD 2、字符数组的输入 (1)用格式符“%s”控制的 scanf(); 如:static char c[6]; scanf(“%s”,c); 再如: static char str1[5],str2[5],str3[5]; scanf(“%s%s%s”, str1,str2,str3); /*不能写成&str1*/ 若输入数据流为:How are you? str1、str2、str3 分别接收到“How”、“are”、“you?”, 且在各个字符串的最后自动加‘\0’。 如果利用一个 scanf 函数输入多个字符串时,则以空格分隔; (2)用 gets( );如: char ch[16]; gets(ch); 注意: ①gets 一次只能输入一个字符串; ②自变量应是数组名,而不能是数组元素名; ③要求从键盘上输入一个字符串直到遇到换行符为止,系统会自动把换行符换成“\0”加在字符串末 尾。 与 scanf 不同,输入字符串中的空格也会被接收。 六、字符串处理函数 1、puts(字符数组) 功能:将一个以‘\0’结束的字符序列输出到终端; 如: static char str[ ]=“China”;puts(str); 说明:输出的字符串中可含转义字符
gets(字符数组) 功能:从终端输入一个字符串到字符数组中,并得到一个函数值,该函数值是字符数组的起 始地址 gets(str) 说明:gets与puts只能输入或输出一个字符串。 strcat(字符数组1,字符数组2) 功能:将字符串2接到字符串1的后而且去掉字符串1的尾空 如: static char strl[30]=“ YangZhou str2[]=“ China” printf(“%sn”, strcat(str1,str2)) 说明 ①字符数组1的长度需足够大:②去掉字符串1的尾空。 4、 strcpy(字符数组1,字符串2) 功能:将字符串2拷贝到字符数组1中去; static char strl[10],str2[]=“ China”; strcpy (strl, str2) 字符数组1的长度需足够大 字符数组1必须写成数组名形式,字符串2可以是数组名,也可以是一个字符串常量。如: trap(strl,“ China”) 拷贝时连同字符串2后的“\0’一起拷贝 不能用赋值语句将一个字符串常量或字符数组直接赋给一个字符数组。如:str1= China strl=str2;一一均是错误的 若只想拷贝str2的前面若干个字符(如2个字符),则可用 strncpy函数。 strncpy(str1,str2
2、gets(字符数组) 功能:从终端输入一个字符串到字符数组中,并得到一个函数值,该函数值是字符数组的起 始地址; 如: gets(str); 说明:gets 与 puts 只能输入或输出一个字符串。 3、strcat(字符数组 1,字符数组 2) 功能:将字符串 2 接到字符串 1 的后而且去掉字符串 1 的尾空; 如: static char str1[30]=“YangZhou ”, str2[ ]=“China”; printf(“%s\n”,strcat(str1,str2)); 说明: ①字符数组 1 的长度需足够大; ②去掉字符串 1 的尾空。 4、strcpy(字符数组 1, 字符串 2) 功能:将字符串 2 拷贝到字符数组 1 中去; 如: static char str1[10],str2[ ]=“China”; strcpy (str1,str2); 说明: 字符数组 1 的长度需足够大; 字符数组 1 必须写成数组名形式,字符串 2 可以是数组名,也可以是一个字符串常量。如: strcpy(str1,“China”); 拷贝时连同字符串 2 后的‘\0’一起拷贝; 不能用赋值语句将一个字符串常量或字符数组直接赋给一个字符数组。如:str1= “China”; str1=str2; ——均是错误的。 若只想拷贝 str2 的前面若干个字符(如 2 个字符),则可用 strncpy 函数。strncpy(str1,str2, 2);