编程练习------C/C++分别实现字符串与整数的转换
2014-05-06 15:52
471 查看
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; }运行结果如下图:
相关文章推荐
- 编程练习------C/C++分别实现字符串与整数的转换
- c语言编程实现字符串向整数的转换(剑指offer)
- 编程实现整数和字符串的相互转换
- int型整数转换成字符串的C++实现
- 十六进制字符串转换成十进制整数的C++实现源代码
- C++实现十六进制字符串转换为十进制整数的方法
- 【C编程练习】2013华为校园招聘机试题9月10日题1:把整数转换成字符串 void ConvertIntToStr(int nVal, char* pStr);
- 把字符串转换成整数 C++实现
- C++实现字符串和整数之间的相互转换
- C++ 整数转化成字符串 字符串转换为整数
- c++中字符串和整数转换的方法
- 【编程题目】输入一个表示整数的字符串,把该字符串转换成整数并输出
- c语言:模拟实现库函数的atoi函数,将字符串转换成整数
- 【C语言】【笔试题】实现一个函数int my_atoi(char s[]),可以将一个字符串转换为对应的整数。
- 问题1:java中没有实现这种“byte a = 0xB2 --> String b = “B2””转换的简单实现需要自己实现。 答:自己编写的转换函数,思路将byte的高低4位分开,分别转换为对应的字符然后合成返回的字符串。 java 代码 1.
- C语言实现 字符串转换为整数输出 int ascii_to_integer(char *str);
- c 实现: 将字符串转换为整数,不准用库函数
- 【整理】C/C++中字符串与整数之间的相互转换
- 【笔记】程序员编程艺术 字符串转换成整数
- 实现一个函数int my_atoi(char s[]),可以将一个字符串转换为对应的整数。