10.4字符串处理函数-P232 1、字符串合并(连接) ●streati函数 格式:strcat(s1,s2) 例:char s1[20]="lama"; a 1010 . char s2[]={"boy"}; s2b o y10' strcat(s1,s2);lls1如下: a m a b y0 注意:第一个字符串s1要有足够长的空间,删去 s1的结束标志10'。 6
strcat (s1, s2); //s1如下: 6 例:char s1[20]={"I am a "}; char s2[ ]={"boy"}; I a m a \0 \0 . . . . . b o y '\0' I a m a b o y \0 注意:第一个字符串s1要有足够长的空间,删去 s1的结束标志’\0’ 。 s1 s2 格式:strcat (s1, s2)
10.4字符串处理函数-P232 2、字符串的复制 (1)strepyi函数 格式:strcpy(字符数组1,字符串2) 功能:将字符串2拷贝到字符数组1中去 返值:返回字符数组1的首地址 注意:①字符数组1必须足够大。 ②拷贝时,0’一同拷贝。 ③不能使用赋值语句为一个字符数组贝 数组名s1、s2 例1: 例2: 是地址常量 1 char s1[201,s20="abc"; ①char,s2[20] ②strcpy(s1,s2); ② s1={"Hello!");(x) ③ puts(s1);/输出abc ③ s2=s1; ()
格式:strcpy (字符数组1,字符串2) 功能:将字符串2拷贝到字符数组1中去 返值:返回字符数组1的首地址 注意:字符数组1必须足够大。 拷贝时, ‘\0’一同拷贝。 不能使用赋值语句为一个字符数组赋值。 例1: ① char s1[20], s2[]="abc"; ② strcpy (s1, s2); ③ puts(s1);//输出abc 例2: ① char s1[20], s2[20]; ② s1 = {"Hello!"}; () ③ s2 = s1; () 数组名s1 、s2 是地址常量
例1:①char s1[2o]="Iama",s2[]="boy"; s1 a 1010 s2 6 0 y 10 ② strcpy(s1,s2);ls1如下: y 1o a 1010 ③puts(s1); boy 例2:char s1[10],s2[10]; ⑤strcpy(s1,"CHINA");I∥字符串正确复制 s1 ⑥s1=s2; ⑦s1="CHINA"; ⑥⑦⑧均为非法 strcpy ("CHINA",s1);
例1:① char s1[20]={" I am a "}, s2[ ]={"boy"}; s1 I a m a \0 \0 s2 b o y \0 b o y \0 a \0 \0 ② strcpy (s1, s2); //s1如下: ③ puts(s1); ⑤ strcpy ( s1, "CHINA"); //字符串正确复制 s1 C H I N A \0 ⑧strcpy ("CHINA" , s1); ⑥s1=s2; ⑦s1= "CHINA"; ⑥⑦⑧均为非法 例2:char s1[10],s2[10];
2、字符串的复制 (2)strncpy函数 格式:strncpy(字苻数组1,字苻串2,长度n) 功能:将字苻串2的前n个字符复制到字符数组1中去,末尾 不自动加0'。 返值:返回字符数组1的首地址。 注意:字符数组1必须足够大。 例: ①char s120]={0},s2201={0; ②strncpy(sl,“abcdefgh”,5); ③ /将“abcdefgh”前5个字符复制到s1中,不自动加0'。 ③ puts(sl);∥输出abede ④ strcpy(s2,"0123456789"): ⑤ puts(s2); ∥输出0123456789
格式:strncpy (字符数组1, 字符串2, 长度n) 功能:将字符串2的前n个字符复制到字符数组1中去,末尾 不自动加'\0' 。 返值:返回字符数组1的首地址。 注意:字符数组1必须足够大 。 例: ① char s1[20]={0},s2[20]={0}; ② strncpy (s1, “abcdefgh” , 5); ③ //将“abcdefgh”前5个字符复制到s1中,不自动加‘\0’ 。 ③ puts (s1); // 输出abcde ④ strcpy (s2, "0123456789"); ⑤ puts(s2); // 输出0123456789
10.4字符串处理函数-P232 3、字符串比较 strcmp函数 格式:stremp(字符串1,字符串2) 功能:比较两个字符串 比较规则:对两串从左向右逐个字符比较(ASC码), 直到遇到不同字苻或0’为止。 返回值:返回int型整数。 (1)若字符串1<字符串2,返回值小于0 (2)若字符串1>字符串2,返回值大于1 (3)若字符串1==字符串2,返回值是0 注意: 字特串比校不能用“=二”,必须用strempa函数。 例:intk1,k2,k3; ① kl=strcmp("abcd","abCD");∥1 ② k2=strcmp("1234","12345");∥-1 ③ k3=strcmp("hello'","hello");∥0 恩
格式:strcmp (字符串1, 字符串2) 功能:比较两个字符串 比较规则:对两串从左向右逐个字符比较(ASCII码), 直到遇到不同字符或‘\0’为止。 返回值:返回int型整数。 (1) 若字符串1< 字符串2, 返回 值小于0 (2) 若字符串1> 字符串2, 返回 值大于1 (3) 若字符串1== 字符串2, 返回 值是0 注意:字符串比较不能用“==” ,必须用strcmp函数