Я плохо знаком с C++. Я хочу сделать a char*
, но я не знаю как.
В Java это просто это:
int player = 0;
int cpu = 0;
String s = "You: " + player + " CPU: " + cpu;
Как я могу сделать это? Мне нужен a char*
.
Я фокусируюсь на вставке целого числа после строки.
Вы почти наверняка не захотите иметь дело с char *, если можете - вам понадобится класс C ++ std :: string:
#include <string>
..
string name = "fred";
или связанный класс stringstream:
#include <sstream>
#include <string>
#include <iostream>
using namespace std;
int main() {
int player = 0;
int cpu = 0;
ostringstream os;
os << "You: " << player << " CPU: " << cpu;
string s = os.str();
cout << s << endl;
}
, если вам действительно нужен указатель на символ (и вы не сказали, почему вы так думаете), вы можете получить его из строки, используя ее функцию-член c_str ().
Все это должно быть описано в любом вводном учебнике по C ++. Если вы еще не купили его, получите Accelerated C ++ . Вы не можете изучить C ++ только по Интернет-ресурсам.
Если вы работаете с C ++, просто используйте std :: string
. Если вы работаете с char *
, вы, вероятно, захотите работать с C напрямую. В случае C вы можете использовать функцию sprintf
:
char* s = // initialized properly
sprintf( s, "You: %d CPU: %d", player, cpu );
Просто позвоните по номеру s.c_str ();
. Здесь вы можете увидеть больше.
PS. Вы можете использовать strcpy
, чтобы скопировать содержимое в новую переменную, а затем вы сможете изменить его.
char *
означает "указатель на символ".
Вы можете создать указатель на "строку" следующим образом:
char* myString = "My long string";
В качестве альтернативы вы можете использовать std::string:
std::string myStdString("Another long string");
const char* myStdString.c_str();
Обратите внимание на const в начале последнего примера. Это означает, что вы не можете изменить символы, на которые указывает указатель. Вы можете сделать то же самое с первым примером:
const char* = "My long string";
Рассмотрим использование потоков строк:
#include <iostream>
#include <sstream>
using namespace std;
int main ()
{
int i = 10;
stringstream t;
t << "test " << i;
cout << t.str();
}
Возможно, было бы лучше, если бы C++ перегрузил оператор "+", как вы показываете. К сожалению, они этого не сделали (хотя вы можете, если захотите).
Для преобразования целочисленных переменных в строки в C++ существует в основном три метода; два унаследованы от C и один новый для C++.