如果我有一个看起来像的数组
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)
你可以使用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)