C语言中strcpy(str1,str2)

谭浩强C语言书上写的是:str1,必须为数组形式,但是我看了一个教学视频上有这么一种形式:strcpy(str1+strlen(str1),str2)是为了实现strcat(str1,str2),这个函数,但是我在turbo,c上测试了一下,没有实现strcat.不知道这是为什么?

第1个回答  推荐于2017-10-06
这个strcpy(str1+strstrlen(str1),str2) 是可以实现 strcat的呀

程序如下:
#include <stdio.h>
#include <string.h>
void main()
{
char a[30]="abc";
char b[10]="abcdef";
puts(a);
puts(b);
printf("复制:\n");
strcpy(a+strlen(a),b);
puts(a);
}

因为 strl+strlen(str1) 的意思就是将指针移到这个字符数组的 \0 位置 再往后面 复制字符
这不刚好是strcat 的功能 ,关键是你复制到的目的数组要足够大本回答被提问者采纳
第2个回答  2010-12-26
strcat函数 是实现两个字符串连接的函数。str1和str2 应该是字符数组这样才有意义。
去重新试一下吧本回答被网友采纳
第3个回答  2010-12-26
strcat(str1,str2)中两个都是字符型的数组,谭浩强的书不可能是错的
第4个回答  2010-12-26
为什么要在TC上测试呢?TC是面向图形界面的,对于一些程序对象它可能实现不了 ,上面的strcpy函数和strcat函数是正确的,你可以在Visual C++上测试 ,肯定就会对的!
第5个回答  2010-12-26
str1是指针,不必非得是地址

C语言中strcpy(str1,str2)
这个strcpy(str1+strstrlen(str1),str2) 是可以实现 strcat的呀 程序如下:include <stdio.h> include <string.h> void main(){ char a[30]="abc";char b[10]="abcdef";puts(a);puts(b);printf("复制:\\n");strcpy(a+strlen(a),b);puts(a);} 因为 strl+strlen(str1) ...

strcpy(str1,str2)的功能
这个函数的功能是将 str2 字符串的内容复制到 str1 中。strcpy(str1, str2)是C语言中的一个标准库函数,用于将str2的内容复制到str1中。该函数会遍历str2的每个字符,直到遇到空字符为止,并将这些字符复制到str1中,形成一个合法的C语言字符串。需要注意的是,strcpy不会检查str1是否有足够的空间来存储str2的...

strcpy(str1,str2);
strcpy(str1,str2);运行后是str1由{\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0}变为{QWERT\\0\\0\\0\\0\\0} 就是吧str2中的QWERT复制到str1中,但是由于str1有10个长度 所以后面的全是"\\0"需要注意的就是1的长度必须大于2,目的是有足够的空间容纳2的东西;另外1必须是数组名的形势,2可以是数组名 也可...

strcpy(str1,str2)的功能
函数strcpy(str1, str2)是C语言中的字符串处理函数之一,它的作用是将字符串str2中的内容复制到字符串str1中。该函数的原型为:char* strcpy(char* str1, const char* str2);其中,参数str1表示目标字符串,参数str2表示源字符串,函数返回值为指向目标字符串的指针。在使用该函数时,需要保证目...

strcpy(str1,str2)的功能
把字符串str2复制到字符串str1中。strcpy,即stringcopy(字符串复制)的缩写。strcpy是一种C语言的标准库函数,strcpy把含有'\\0'结束符的字符串复制到另一个地址空间,返回值的类型为char*。在C语言函数中:原型声明:char*strcpy(char*dest,constchar*src);头文件:#include和#include。功能:把从...

strcpy(str1,str2)是将哪个复制成哪个
第一个是目标,第二个是源,即:将第二个复制到第一个

请问strcpy(str1,str2)时,str2会把末尾的'\\0’也给复制到str1中且覆 ...
strcpy复制时,会把末尾的'\\0’也给复制进去,且覆盖一个字符。例如:main(){ char s1[]="abcd12349";char s2[]="xyz";int i;strcpy(s1,s2);for (i=0;i<10;i++) printf("%c|",s1[i]);} 打印出:x|y|z| |1|2|3|4|9| | 可以看出,z后面那个字符覆盖了。如果用 printf("...

c程序中strcpy是什么意思?
1、strcpy函数,接受两个参数str1和str2,主要用来复制字符串的,strcpy(str1,str2)的意思就是把str2这个字符串复制给str1字符串。接下来介绍用法,准备一个c语言的程序文件,首先写入头文件和主函数:2、接着定义两个数组a和b,下面使用strcpy函数将c数组中的字符串复制到a数组中,打印出的结果最后...

...gets(str),strcmp(str1,str2),strcpystr1,(str2)
puts(str):输出字符串str的内容。gets(str):输入字符串,存入str表示的空间。strcmp(str1,str2):比较两个字符串,str1>str2返回值>0,str1==str2返回值为0,str1<str2返回值<0 strcpy(str1,str2):将字符串str2复制到str1。

c语言 char str1,str2[];str2={“china”};strcpy(str1,
第一个错,str1字符,不是字符串,strcpy是针对字符串使用的 第二个错,str2={"china"};也是错的,字符串数组可以初始化,但是不能复制。(一定要记住)。给你讲详细点吧:char str2[]={"china"}; \/\/字符串数可以组初始化,是正确的 char str[]; str[]={"china"}; \/\/赋值,是...

相似回答