主要思想就是利用字符型的数字减去或加上字符型的0,得到的就是刚好就是整型的数字
例如’0’的ASCII码为48,‘4’的ASCII码为52,‘4’-‘0’ = 52-47 = 4,这样就得到数字4了
整型转字符串(itoa)
#include <iostream>
#include <string.h>
using namespace std;
char* int2str(int num) {
char* buf = new char[10];
memset(buf, 0, 10);
int temp = num < 0 ? -num : num;
int i = 0;
while (temp != 0)
{
buf[i++] = (temp % 10) + '0';
temp /= 10;
}
num >= 0 ? --i : i;
for (int j = 0, k = i ; j < k; j++, k--)
{
int t = buf[j];
buf[j] = buf[k];
buf[k] = t;
}
if (num < 0)
{
buf[0] = '-';
}
return buf;
}
int main() {
int num = 0;
cin >> num;
char* str = int2str(num);
cout << str << endl;
delete[] str;
return 0;
}
字符串转整型(atoi)
#include <iostream>
using namespace std;
int str2int(const char* str) {
if (str == NULL)
return -1;
const char* ptr = str;
if (*str == '+' || *str == '-')
str++;
int temp = 0;
while (*str != '\0')
{
if(*str < '0' || *str > '9')
break;
temp = temp * 10 + (*str - '0');
str++;
}
if (*ptr == '-')
{
temp = -temp;
}
return temp;
}
int main() {
char p[10] = "";
cin.getline(p, 10);
int num = str2int(p);
cout << num << endl;
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)