将int转换为char然后推回vector

时间:2020-08-30 12:00:53

标签: c++ string vector char

我在将int转换为char时遇到问题。代码如下:

 int main {
  int i = 10;
  char c[80];
  std::vector<char> data; 

  sprintf(i,"%d",c);
  data.push_back(c)
}

但是我一直从char *到std :: vector ...错误地转换为无效。有没有更简单的方法将整数转换为字符,然后将其存储在包含字符的向量中?由于之前的任务,我需要首先将值作为一个int值,并将该整数10作为“ 10”带入向量。

1 个答案:

答案 0 :(得分:4)

对于初学者来说似乎有错字

sprintf(text,"%d",f);

你娘

sprintf( c ,"%d", i );

此向量的值类型

std::vector<char> data;

char。因此,在成员函数push中,您必须提供类型为char的表达式。但是在这次通话中

data.push_back(c);

您提供了一个数组类型的对象

char c[80];

如果要在向量中将数字的字符表示形式存储为单独的字符,则可以编写例如

size_t n = strlen( c );
data.reserve( n );
data.assign( c, c + n );

或者您也可以声明向量,通过用数字表示来初始化它,例如

std::vector<char> data( c, c + n );

如果要将整数存储为向量的一个元素,则应将向量声明为

std::vector<std::string> data( 1, std::to_string( i ) );
相关问题