c ++ int хранить как символ в преобразовании char * без какого-либо API - PullRequest
0 голосов
/ 18 января 2012

как мы можем сохранить значение int в char * как представляющий символ в c ++ .. например, я хочу сохранить 10..char * p - это указатель символа, и я хочу сохранить 10 как символ в этом указателе ... потому что я хочу написать итерацию, которая генерирует символьный поток на основе целочисленного значения. Как сделать конкатенацию символов с целым числом (как символ) с похожим кодом Java будет:

for(int i=0; i<10; i++)
{
  string temp=value+i;//here i want to use char* to represent string in c++
  System.out.println(temp);
}

Ответы [ 2 ]

0 голосов
/ 18 января 2012

Я немного озадачен тем, что вы пытаетесь сделать, но вот некоторая информация, которая, я думаю, вероятно, поможет вам разобраться:

  1. В C ++ вы должны в первую очередь использовать std :: string для хранения строк символов.
  2. В обычном C соглашение состоит в том, чтобы использовать char * для хранения списка символов - эти char * должны заканчиваться нулем, заканчиваясь на \ 0, чтобы ваш код знал, где прекратить печатать строку символов.
  3. Предпочитая путь C ++, вы можете объединять строки с помощью оператора +:

Вот пример:

std::string myString = "H";
myString += "e";
myString += "l";

std::cerr << myString;  //prints "Hel" to console.

Вы также можете использовать поток строк, который может смешивать типы данных:

std::stringstream ss;
ss << "h" << "e" << 7 << myCustomType << std::endl;

Еще одна вещь, которую стоит знать, это то, что вы можете хранить целочисленное значение в символе, и оно будет работать с представлением ascii при его печати. ​​

Например:

char x = 65;  //x = capital A.
0 голосов
/ 18 января 2012

Я знаю, что вы сказали C ++, но вы также сказали char *, поэтому я буду относиться к нему как к C. С C вы не сможете сделать такое объединение.Лучший способ сделать это - вычислить требуемое количество символов, выполнить malloc, а затем просто сохранить символы в массиве char.И не забудьте освободить его, когда вы закончите, используя его!В Си все надо делать самому!

...