簡體   English   中英

做<cstring>不包括 strcat_s() 函數?

[英]Does <cstring> not include the strcat_s() function?

我的代碼是這樣的:

#include <iostream>
#include <string>
#include <cstring>

using namespace std;
const int LENGTH1 = 25;

char array_str1[LENGTH1] = "Hey guys! "; 
char array_str2[] = "What's up?"; 

string std_str1 = "Hello everyone! ";
string std_str2 = "How's tricks?";

int main(){ 
    strcat_s(array_str1, LENGTH1, array_str2);
    std_str1 += std_str2;
    cout << std_str1 << endl;
    return 0;
}

當我運行它時,我收到錯誤:

使用未聲明的標識符“strcat_s”

如果我注釋掉strcat_s行,其余代碼運行良好。

我正在學習教程,即使我從教程中復制粘貼工作代碼,我也會遇到同樣的錯誤。 我在 MacOS 10.14.16 上使用 Visual Studio Code 1.60.0。

<cstring>不包括 strcat 函數嗎?

<cstring>確實聲明std::strcat

旁注:不要使用std::strcat 你不需要它。 使用std::string

 strcat_s(array_str1, LENGTH1, array_str2);

strcat_s不是std::strcat 即使 C++ 標准庫中有std::strcat ,也沒有strcat_s

旁注:C 標准庫中有strcat_s (從 C11 開始)。 C 是另一種語言。 即使在 C 中,也不能保證支持strcat_s ,並且並非所有語言實現都提供它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM