编程练习------C/C++分别实现字符串与整数的转换
2024-08-26 20:35:48
C/C++分别实现字符串与整数的转换
前提:不使用 itoa 和 atoi。
方法一.C和C++通用的一种转换手段是:
1、整数转化为字符串:采用加‘0’,再逆序的办法,整数加‘0’就会隐性转化成char类型的数字。
2、字符串转化为整数:采用减‘0’的办法,字符串减‘0’就会隐性转化成int类型的数。
代码如下:
/* C实现数字转字符串、字符串转数字 */
#include<stdio.h> char string[7]; /*全局变量,用于存放整数转为char*/
char* itoa_test(int num)
{
int i = 0, j = 0;
char temp[7];
while(num)
{
temp[i] = num%10 + '0'; /* 整数加0隐性转化为char类型 */
i++;
num /= 10;
} i--;
while(i>=0) /* 将字符串逆序 */
{
string[j] = temp[i];
i--;
j++;
}
string[j] = 0;
return string;
} int atoi_test(char* str)
{
int i = 0, j = 0, sum = 0;
while(*str != 0)
{
sum = sum*10 + ((*str) - '0'); /* 字符串减0会隐性转化为int类型 */
str++;
}
return sum;
} int main()
{
char str[] = "1314";
int num = 520;
int i = atoi_test(str);
char *s = itoa_test(num);
printf("atoi: %d\n",i);
printf("itoa: %s\n",s);
}
测试结果如下图:
方法二.使用C++中的字符串流实现:
stringstream对象的一个常见用法就是,需要在多种数据类型之间实现自动格式化时使用该类型。
代码如下:
#include<iostream>
#include<sstream>
#include<string>
using namespace std; string test_itoa(int num)
{
ostringstream ostr;
ostr << num;
return ostr.str();
} int test_atoi(string str)
{
istringstream istr(str);
int num;
istr >> num;
return num;
} int main()
{
string str = "520";
int num = 1314;
int i = test_atoi(str);
string s = test_itoa(num);
cout<<"atoi: "<<i<<"\nitoa: "<<s<<endl;
}
运行结果如下图:
最新文章
- 利用奇异值分解(SVD)简化数据
- AI (Adobe Illustrator)详细用法(三)
- 查找问题的利器 - Git Bisect
- 百度ue富文本编辑器setContent方法报错初始化加载内容失败解决办法
- 【转】 IOS中定时器NSTimer的开启与关闭
- OC1_协议语句
- 1671. Anansi&#39;s Cobweb(并查集)
- PHP简单socket编程
- 使用JQUERY操作Radio
- Mongoose与bluebird结合使用实例
- UITextField总结
- gitlab markdown支持页面内跳转
- npm run dev的错误
- ​《数据库系统概念》1-数据抽象、模型及SQL
- 使用php分页类实现简单分类
- 浅谈压缩感知(十四):傅里叶矩阵与小波变换矩阵的MATLAB实现
- [javaSE] 集合框架(共性方法)
- CSS链接的样式a:link,a:visited,a:hover,a:active
- C# .net 使用正则表达式去掉字符串中的数字
- js 图片查看器
热门文章
- (四)Jquery Mobile表单
- Eclipse perl的IDE环境插件-EPIC
- LPC1788的EMC驱动norflash
- Keil STM32调试,使用ST-Link下载程序时提示“flash timeout.reset the target and try it again”
- STM32-USB详细使用说明(转)
- 浅谈一个网页打开的全过程(涉及DNS、CDN、Nginx负载均衡等)
- 解决eclipse报PermGen space异常的问题
- nginx 判断访问文件或目录不存在rewrite
- JAVA-Unit01: 数据库原理 、 SQL(DDL、DML)
- Oracle数据库常用技术