将整数数组转换为字符串

Ozy*_*ias 1 c++

如果我有一个看起来像的数组

int digits[size] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 4}
Run Code Online (Sandbox Code Playgroud)

我想删除前导零,并且这样做我试图将整数数组转换为字符串(这是一个字符数组).

我的尝试看起来像

string toString(int digits[], int size){
string number = " ";
for(int i = 0; i < size - 1; i++){
    number[i] = digits[i];
}
return number;
}
Run Code Online (Sandbox Code Playgroud)

出来的可怕的坏了.

我也不能简单地删除所有零,只是领先的零.

如果我可以在这里讨论另一个问题:

如何识别字符串是否为数字?

例如

string number = "12a4"
cout << "not a number"
Run Code Online (Sandbox Code Playgroud)

Rom*_*Mer 5

你可以使用C++ 11函数std :: to_string()这里是一个例子

#include <string>
#include <iostream>

int main()
{
   int size = 15;
   int digits[size] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 4};
   std::string result = "";

   for (int i = 0; i < size; i++)
   {
      if (!(digits[i] == 0 && result.size() == 0))
         result += std::to_string(digits[i]);
   }

   std::cout << result << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

您可以使用此函数检查字符串是否为数字

bool isNb(std::string str)
{
  if (str.size() == 0)
    return false;

  for (int i = 0; i < str.size(); i++)
  {
    if (std::isdigit(str.at(i)) == false)
      return false;
  }

  return true;
}
Run Code Online (Sandbox Code Playgroud)