为什么Microsoft Visual Studio 2012没有显示错误?

时间:2015-01-30 02:22:48

标签: c++ visual-studio visual-studio-2012

我在Visual Studio 2012中编写了一个代码:

#include <iostream>
using namespace std;
int main()
{
    char name1[20], name2[20];
    name1 = "John";
    strcpy(name2, name1);
    cout << name2 << endl;
}

我知道strcpy需要一个库<cstring>。 代码块会出错:&#39; strcpy&#39;没有宣布。但Visual Studio不会给出任何错误并编译并运行得很好。

为什么呢?这对我来说是个大问题,因为我刚开始解决ACM问题。

2 个答案:

答案 0 :(得分:0)

std::string应该是字符串的默认选择,而不是字符数组。

#include <iostream>
#include <string>

using namespace std;
int main()
{
    string name1, name2;
    name1 = "John";
    name2 = name1;
    cout << name2 << endl;
}

答案 1 :(得分:0)

在VC ++标题中,<cstring>包含在<iostream>中,您已将其包括在内。链是:

<iostream>
 <istream>
  <ostream>
   <ios>
    <xlocnum>
     <streambuf>
      <xiosbase>
       <xlocale>
        <cstring>