如果我理解正確的,你需要的東西作爲
char str[] = "33MayPen5";
int length = strlen(str);
char *buffer = new char[length];
int j = 0;
for (int i = 0; i < length && std::isdigit(str[i]); i++)
{
buffer[j++] = str[i];
}
或者,如果你需要的所有數字存儲在緩衝區STR則循環可以看成
for (int i = 0; i < length; i++)
{
if (std::isdigit(str[i])) buffer[j++] = str[i];
}
當然,這將是如果你使用std :: string而不是動態分配的數組,那更好。
在這種情況下,這兩個實例將如下
std::string buffer;
buffer.reserve(length);
for (int i = 0; i < length && std::isdigit(str[i]); i++)
{
buffer.push_back(str[i]);
}
和
std::string buffer;
buffer.reserve(length);
for (int i = 0; i < length; i++)
{
if (std::isdigit(str[i])) buffer.push_back(str[i]);
}
編輯:我看你改變了你的帖子。
當代碼會像
char str[] = "33MayPen5";
int length = strlen(str);
unsigned char *buffer = new unsigned char[length];
unsigned char c = 0;
for (int i = 0; i < length && std::isdigit(str[i]); i++)
{
c = c * 10 + str[i];
}
buffer[0] = c;
你能夠使用String類嗎? – dgp
你必須更精確。你想將「33」轉換爲33的char值嗎?對於「馬」?你想要的ASCII碼的總和......? – AntiClimacus