Присвоение целого числа индексу в массиве указателей char * - PullRequest
1 голос
/ 18 февраля 2020

Повторяю свой предыдущий вопрос, поскольку я не предоставил достаточно подробностей.

У меня есть массив указателей на символы, char* token[100]. Допустим, у меня есть число с двойным ди git, например 33.

Как мне назначить это int в индекс в массиве токенов, чтобы при выводе этого токена он получал 33 и не какое-то значение ASCII?

char* token[100];
int num = 33;
//How do I assign num into a specific token index, like for example:
token[1] = num;
//When I print out that token index, I want 33 to be printed out
cout << token[1] << endl; // I want to have 33 be the result. Right now I have '!' as an output

Ответы [ 2 ]

1 голос
/ 18 февраля 2020

Кажется, вы имеете в виду что-то вроде следующего:

#include <iostream>
#include <string>
#include <cstring>

int main() 
{
    char * token[100] = {};
    int num = 33;

    std::string s= std::to_string( num );

    token[1] = new char[s.size() + 1];

    std::strcpy( token[1], s.c_str() );

    std::cout << "token[1] = " << token[1] << '\n';

    delete [] token[1];

    return 0;
}

Вывод программы:

token[1] = 33

Если вам не разрешено использовать контейнеры и функции C ++, тогда программа может посмотреть следующим образом

#include <iostream>
#include <cstdio>
#include <cstring>

int main() 
{
    char * token[100] = {};
    int num = 33;

    char buffer[12];

    std::sprintf( buffer, "%d", num );

    token[1] = new char[std::strlen( buffer ) + 1];

    std::strcpy( token[1], buffer );

    std::cout << "token[1] = " << token[1] << '\n';

    delete [] token[1];

    return 0;
}
0 голосов
/ 18 февраля 2020

По комментариям я убежден, что вам нужен массив целочисленных типов. Если мы получим дальнейшие разъяснения о том, почему это должен быть массив char, я обновлю свой ответ, но из всей доступной информации кажется, что вам действительно нужен массив целочисленного типа.

#include <iostream>

int main(int argc, char** argv)
{
    int token[100] = {};
    int num = 33;

    token[1] = num;

    std::cout << token[1] << std::endl;

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...