1、strcpy函数是复制字符串的,接受两个参数,一个是被复制字符串,另一个新字符串。具体的用法,首先打开编辑器新建一个c语言的程序文件,写入头文件和主函数:
创新互联专注于企业全网整合营销推广、网站重做改版、沧县网站定制设计、自适应品牌网站建设、H5开发、商城网站开发、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为沧县等各大城市提供网站开发制作服务。
2、接着定义两个数组a和b,程序经过strcpy函数处理,将b数组中的字符串复制到a数组中,最后打印出结果:
3、最后来看看效果。打开调试窗口,输入一句话,按下回车输出了这句话。以上就是C语言中strcpy的用法:
/*
原 串 : Windows Application
目标串 : Windows Application
请按任意键继续. . .
*/
#include stdio.h
#include stdlib.h
char *strcopy(char ds[], char ss[]) {
int i = 0;
while(ds[i] = ss[i]) ++i;
return ds;
}
int main() {
char s[] = "Windows Application";
char d[20];
printf("原 串 : %s\n",s);
printf("目标串 : %s\n",strcopy(d,s));
system("pause");
return 0;
}
strcpy()函数只能拷贝字符串。strcpy()函数将源字符串的每个字节拷贝到目录字符串中,当遇到字符串末尾的null字符(\0)时,它会删去该字符,并结束拷贝。 memcpy()函数可以拷贝任意类型的数据。因为并不是所有的数据都以null字符结束,所以你要为memcpy()函数指定要拷贝的字节数。 在拷贝字符串时,通常都使用strcpy()函数;在拷贝其它数据(例如结构)时,通常都使用memcpy()函数。以下是一个使用strcpy()函数和memcpy()函数的例子: #include stdio. h #include string. h typedef struct cust-str {int id ;char last_name [20] ; char first_name[l5];} CUSTREC;void main (void); void main (void){char * src_string = "This is the source string" ; char dest_string[50]; CUSTREC src_cust; CUSTREC dest_cust; printf("Hello! I'm going to copy src_string into dest_string!\n"); / * Copy src_ string into dest-string. Notice that the destination string is the first argument. Notice also that the strcpy() function returns a pointer to the destination string. * / printf("Done! dest_string is: %s\n" , strcpy(dest_string, src_string)) ; printf("Encore! Let's copy one CUSTREC to another. \n") ; prinft("I'll copy src_cust into dest_cust. \n"); / * First, intialize the src_cust data members. * / src_cust. id = 1 ; strcpy(src_cust. last_name, "Strahan"); strcpy(src_cust. first_name, "Troy"); / * Now, Use the memcpy() function to copy the src-cust structure to the dest_cust structure. Notice that, just as with strcpy(), the destination comes first. * / memcpy(dest_cust, src_cust, sizeof(CUSTREC));
函数原型为:
void *memcpy(
void *dest,
const void *src,
size_t count
);
其中:
dest:
目标内存缓冲区
src:
源内存缓冲区
count:
需要拷贝的字节数
通过memcpy()函数无法确定目标缓冲区的大小,目标缓冲区一般是一个已分配好空间的指针,在分配该空间时一般要先考虑源内存缓冲区的大小,宁愿多分配些空间(即,一般都要分配得比源缓冲区大),第三个参数为源缓冲区中实际需要拷贝的数据的字节数.
1、首先需要建立一个新的文件,输入头文件和主函数。
2、接下来需要定义变量类型。
3、设置完变量类型之后开始调用cpy函数。
4、接下来需要定义一个函数,并定义变量类型。
5、最后加一个字符串结束符,并在主函数中输出。
6、编译。运行,可以看到字符串a复制到字符串b中。
C语言实现一个简单的文件复制功能,Linux环境下。
思路步骤:(下代码最重要的逻辑步骤清晰)
第一步:打开源文件(要复制的文件),打开文件的方式以读的方式就可以了。
Linux C打开文件的库函数有:int open(const char *pathname,int flags),int open(const char *pathname,mode_t mode),以及 FILE *fopen(const char *path,const char *mode),FILE *fdopen(int fd,const char *mode),这几个函数,具体的使用方法就查看manual就可以了。
第二步:创建目标文件,所用的函数也是上面那几个。
第三步:读取文件。库函数有:size_t read(int fd,void *buf,size_t count),
size_t fread(void *ptr,size_t size,size_t nmemb,FILE *stream)
第三步:写入目标文件。用的库函数:size_t write(int fd,void *buf,size_t count),
size_t fwrite(void *ptr,size_t size,size_t nmemb,FILE *stream)
第四步:关闭文件。库函数:int fclose(FILE *fp) ,int close(int fd)
思路步骤就是这样子的了。下面是具体的代码实现。
#include
#include
#include
#include
#include
#include
int main(int argc,char *argv[])
{
int fd_source_file,fd_copy_file;//用接受int open()函数返回的值
//FILE *fp_source_file,*fp_copy_file;//如果用FILE *fopen()函数的话
int size_read,size_write;
char buf[1024];
char copy_file_name[50];
//检查参数的输入
if(argc3)
{
printf("usage: ./a.out source_file_path copy_file_path\n");
exit(1);
}
//复制目标文件名
strcpy(copy_file_name,argv[2]);
//打开源文件
if( (fd_source_file=open(argv[1],O_RDONLY,00744))0 )
{
perror("open source file error");
exit(1);
}
//创建目标文件
if( (fd_copy_file=open(argv[1],O_CREAT|O_RDWR)) 0 )
{
perror("create copy file error");
exit(1);
}
do
{
//读取文件内容
if( (size_read=read(fd_source_file,buf,1024)) 0 )
{
perror("read source file error");
exit(1);
}
//写入目标文件
if( (size_write=write(fd_copy_file,buf,sieze_read))0 )
{
perror("wrire file error");
exit(1);
}
}while(size_read==1024)
return 0;
}