zoukankan      html  css  js  c++  java
  • C++Primer Plus中指针与字符串例程VS2017版

    #include "pch.h"
    #include <iostream>
    #include <iomanip>
    #include <cmath>
    #include <string>
    #include <cstring>
    //#include <climits>
    using namespace std;
    
    int main() {
        char animal[20] = "bear";
        const char* bird = "wren";
        char* ps;
        cout << animal << " and ";
        cout << bird << '
    ';
        cout << "Enter a kind of animal: ";
        cin >> animal;
        ps = animal;
        cout << ps << "!
    ";
        cout << "Before using strcpy():
    ";
        cout << animal << " at " << (int *)animal << endl;
        cout << ps << " at " << (int*)ps << endl;
        ps = new char[strlen(animal) + 1];
        strcpy_s(ps, strlen(animal) + 1,animal);
        cout << "After using strcpy():
    ";
        cout << animal << " at " << (int*)animal << endl;
        cout << ps << " at " << (int*)ps << endl;
        delete [] ps;
        return 0;
    }

    书籍中给出的源码在VS2017环境下编译会报错,因为VS2017需要使用strcpy()的安全版本strcpy_s(),然而当我们直接替换时,编译器仍然会报错,这是因为strcpy_s()中的参数与strcpy并不完全相同,需要保证缓冲区,直接new的话仍然会报错,需要在strcpy_s()中第二个参数加入被cpy参数的长度。修改完成再编译即可通过。

  • 相关阅读:
    什么是系统瓶颈?
    功能测试之链接测试
    H5页面测试要点
    面向对象编程
    Java 基本语法(1)
    Java语言概述
    Annotation注解(有源代码)
    枚举类专题(有源代码)
    JDBC专题
    JSP专题
  • 原文地址:https://www.cnblogs.com/lightmonster/p/10279663.html
Copyright © 2011-2022 走看看