質問する
2650 次
4 に答える
5
引数をstrncat()
間違った順序で指定しています。最初の引数は追加する文字列です。2 番目の引数は追加する文字列です。string
書かれているように、入力を定数 stringに追加しようとしていますが"Hello"
、これは問題です。これは、2 つの別個の文字列操作として記述する必要があります。
クラスを使用するstd::string
と、多くの悲しみが解消されます。
于 2012-09-16T23:30:09.717 に答える
4
C++ を使用しているため、代わりに使用を避けchar*
て使用することをお勧めしstd::string
ます。を渡す必要がある場合char*
、文字列クラスにはc_str()
、文字列を の形式で返すメソッドがありますconst char*
。
文字列クラスを使用している間の連結は、 と同じくらい簡単"Hello " + "World!"
です。
#include <iostream>
#include <string>
const int MaxLength = 599;
int main() {
std::string name;
std::cout << "Enter a name: ";
std::cin >> name;
if (name.length() > MaxLength) {
name = name.substr(0, MaxLength);
}
// These will do the same thing.
// std::cout << "Hello " + name << endl;
std::cout << "Hello " << name << endl;
return 0;
}
これはあなたの質問に完全には答えていませんが、役立つと思います。
于 2012-09-16T23:36:31.657 に答える
3
これを記述するより良い方法は、string クラスを使用して char を完全にスキップすることです。
#include <iostream>
#include <string>
int main(){
std::string name;
std::cout<<"Enter name: ";
std::getline(std::cin, name);
std::string welcomeMessage = "Hello " + name;
std::cout<< welcomeMessage;
// or just use:
//std::cout << "Hello " << name;
return 0;
}
于 2012-09-17T09:24:21.127 に答える
1
char * strncat(char * destination, const char * source, size_t num);
したがって、ソースと宛先が間違っています。
于 2012-09-16T23:29:01.823 に答える