问问题
2650 次
4 回答
5
您以strncat()
错误的顺序提供参数。第一个参数是要附加到的字符串;第二个参数是要附加的字符串。如所写,您正在尝试将输入添加string
到常量 string "Hello"
,这是不行的。您需要将其编写为两个单独的字符串操作。
使用该std::string
课程将为您节省很多痛苦。
于 2012-09-16T23:30:09.717 回答
4
由于您使用的是 C++,因此我建议您避免使用 C char*
++ std::string
。如果需要传入 a char*
,则 string 类有一个c_str()
方法以 a 的形式返回字符串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
更好的编写方法是使用字符串类并完全跳过字符。
#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 回答