char s[20],c[]="HelloWorld";
首先看得出来s是一个未经过初始化的一位数组,想将c数组内的World元素复制过去,可以引用字符串复制函数“strcpy”。
字符串复制函数strcpy用法:
格式: strcpy (字符数组名1,字符数组名2)
功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“\0”也一同拷贝。字符数名2,也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。
举例:
#include<stdio.h> #include<string.h> main() { char st1[15],st2[]="C Language"; //此处需要注意,st1一定要足够大,如果太小就容易溢出而且也没办法全部复制过去 strcpy(st1,st2); //将st2中所有的元素复制到st1中 puts(st1);printf("\n"); //输出st1 return 0; }
经过举例,我们很容易就知道如何将数组中的元素复制到另一个数组中。 引用strcpy函数的时候还需要注意,在头文件还应该加上#include<string.h>,只有这样才能引用字符串处理函数。
回归原题目,将c[]="HelloWorld";中的World复制到数组s中。
首先我们要考虑到的是,这个World并不是数组首元素,而且也不是要将所有的元素都复制过去,此时我们应该怎么处理?
答案:W元素是在H元素向右数5个,可以用c+5来表示。
看下面的程序吧!
#include<stdio.h>
#include<string.h> //引用字符串处理函数
void main()
{ char s[20],c[]="HelloWorld";
strcpy(s,c+5); //被复制的在前面,要复制的在后面
puts(s);
}