• 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参数的长度。修改完成再编译即可通过。

  • 相关阅读:
    python excel 像 Excel 一样使用 python 进行数据分析
    ubuntu 系统分区
    ubuntu 配置和修改ip地址
    yum centos 修改镜像源
    centos6 安装 docker 问题
    Feign 的简单使用(2)
    feign client 的简单使用(1)
    xsync
    canal 配置
    javascript之DOM编程正则表达式引入
  • 原文地址:https://www.cnblogs.com/lightmonster/p/10279663.html
Copyright © 2020-2023  润新知