不用庫函式進行字串和整型資料的相互轉換
// 字串轉換成整型資料
double stoi (char* string = NULL)
{
if (string == NULL) throw 1; // 空字串判斷
int i = 0;
double value = 0;
while (string[i] != '/0') // 迴圈條件
{
if (string[i] == ' ') continue; // 空格判斷
if (string[i] > '9' || string[i] < '0') throw 2; //非數字判斷
value = value * 10 + (string[i] - '0');
i++;
}
return value;
}
// 整型資料轉換成字串 1
void itos (int value, char* string)
{
for (int i = 0; value / 10 != 0; i++) // 從低位到次高位逐個轉換
{
string[i] = (char)(value % 10 + '0');
value = value / 10;
}
string[i] = (char)(value + '0'); // 最高位轉換
int temp;
for (int j = 0; j <= i/2; j++) // 將字串反序
{
temp = string[j];
string[j] = string[i - j];
string[i - j] = temp;
}
string[++i] = '/0'; // 封閉字串
}
// 整型資料轉換成字串 2 這個比1要清楚
void itos1 (int value, char* string)
{
int temp = 1, weishu = 0;
while (value >= temp) // 計算value有多少位
{
weishu++;
temp *= 10;
}
string[weishu] = '/0'; // 封閉字串
while (value > 0)
{
string[--weishu] = value % 10 + '0'; // 從低位到最高位逐個轉換
value = value / 10;
}
}