#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char str1[10] = "Hello";
char str2[10] = "World";
int len ;
strcat(str1, str2);
len = strlen(str1);
cout << len << endl<<str1<<endl;
return 0;
}
で異なっています。 strcat
ではstr1
をstr2
に連結し、最初の文字列のサイズは10で、文字列の長さも10です(余分なヌル文字を意味しません)。なぜこの変化する行動ですか? strcat
機能でC文字列のC++文字列を変換していますか、説明してください。C++文字列の動作は定義ながらstrcatの目的球
あなたはコンパイルエラーが出た場合、それはあなたがそうどのような方法でC++の文字列を使用していない – Hayt
、あなたの質問にそれらを追加する場合は、必ずehlpfulです彼らはこれとは何の関係もありません。それ以外の場合、私はあなたが何を求めているのか本当にわからない。あなたは未定義の動作を呼び出すでしょう。 –
[参照](http://en.cppreference.com/w/cpp/string/byte/strcat)を参照する必要があります。宛先が十分ではないので、未定義の動作があります。 – NathanOliver