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是指针,不必非得是地址
相似回答