注册 登录
编程论坛 C++教室

一个关于strcpy的问题...为什么这个函数不能有三个参数...谭教授说可以啊...

doofymark 发布于 2010-10-07 13:27, 2383 次点击
#include<iostream>
#include<string>
using namespace std;

int main()
{    char str1[]="China";
    char str2[10];
    strcpy(str2,str1,3);
    cout<<str2<<endl;
    return 0;}

运行的结果是error C2660: 'strcpy' : function does not take 3 parameters
那我如何将str1的前三个字符放入str2中呢?

求高手指点...
5 回复
#2
ljt2010-10-07 13:37
char *strcpy( char *strDestination, const char *strSource );
wchar_t *wcscpy( wchar_t *strDestination, const wchar_t *strSource );两个参数

要实现你说的,用memcpy吧,这个行
#3
寒风中的细雨2010-10-07 14:20
#include <iostream>
#include <string>
using namespace std;

int main()
{
    char str1[]="china";
    char str2[10];
    for(int i=0; i<10; ++i)
        str2[i] = 0;
    strncpy(str2, str1, 3);
    cout<<str2<<endl;
    return 0;
}
#4
m21wo2010-10-07 16:17
是strncpy函数吧!能带有三个参数!!
#5
取而代之2010-10-08 11:47
楼上正解
#6
tornador2010-10-09 13:48
上面说的没错,你使用错了函数。
strncpy才是有三个参数的,用于复制n个数值。strcpy只带两个参数,用于全部复制。
1