编程:将一个数字字符串转换成一个整数(不得调用C语言提供的将字符串转换为整数的函数)。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程:将一个数字字符串转换成一个整数(不得调用C语言提供的将字符串转换为整数的函数)。相关的知识,希望对你有一定的参考价值。
(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“-1234”,则函数把它转换为整数值-1234。
思路:先判定字符串第一位是否为符号,“+”或没有则符号为正(1),“-”则符号为负(-1)。然后每一位的数值是ASCII值减去48。计算公式为:123=12*10+3=(1*10+2)*10+3.#include <stdio.h>
int atoi_(char *p)
int a = 0;
int b = 0;
int i = 0;
int j = 0;
int sign = 1;
if (*p =='+')
p = p+1;//判定首位是否为正号。指针指到符号后面。
if (*p == '-')//判定首位是否是负号。
p = p+1;
sign = -1;//符号标识符为-1.
while (*(p+i) >= 48 && *(p+i) <= 57)
i++; //计算一共多少位数字。
for (j = 0;j < i;j++)
b = *(p+j)-48;
a = a*10+b;
a = a*sign;//计算出来的数字乘以前面判定的符号。
return a;
int main(void)//主函数。
char str1[10] = "";
int a;
printf("请输入字符串str1 = ");
gets(str1);
a = atoi_(str1);//调用atoi_函数。
printf("the number is %d.\n",a);
return 0;
参考技术A 下面是用C++语言写的,加上头文件
#include <string>
main()
string a;
cout<<"请输入一个数字:";
cin>>a; //这里不检查数字字符串的正确性,假定是输入的字符串可以转成数字的
bool zhengshu=true;//假定是正数
if (a[0]=='-')
zhengshu=false;
int Num=0;
unsigned int i;
for (i=(zhengshu?0:1);i<(a.length());i++)//如果是负数,就从第2位开始转换,否则从第1位开始转换
int j=a[i]-'0';
Num=Num*10+j;
if (!zhengshu)//如果是负数就取反
Num=-Num;
cout<<Num<<endl;
在VS2010上通过编译,可以正确运行 参考技术B #include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
int main()
char a[13];
long b=0,x=0;
int i,t;
printf("please input a string:\n");
gets(a);
t=strlen(a);
if(a[0]!='-')
for(i=0;i<t;i++)
x=pow(10,t-i-1);
b=b+(a[i]-48)*x;
else
for(i=1;i<t;i++)
x=pow(10,t-i-1);
b=b+(a[i]-48)*x;
b=-b;
printf("\nThe result is %ld\n",b);
system("pause");
return(0);
没有考虑意外情况,但输入数字字符串是正确的 参考技术C 符号要分开检测
字符串的话 int a = '1234' - '0';
如果遇到负号那么 int a = - ( '1234' - '0' ) 参考技术D 不知道要用什么语言写呐?C? 这我不会,,,不过可以给你个思路哦!
比如要把 字符串 '1' 转为整型,,可以先得到它的ascii码,然后再减30就是1了
C语言试题三十二之编写函数function,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。
1、 题目
请编写函数function,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。
2 、温馨提示
C试题汇总里可用于计算机二级C语言笔试、机试、研究生复试中C程序设计科目、帮助C语言学者打好程序基础、C语言基础,锻炼您的逻辑思维和解决问题的能力,帮助你成为C语言笔试、机试解题高手,帮助你拿到C语言工作的offer,每一个题目都附带源代码和运行结果,让你不再有任何困惑,妈妈再也不担心我的C语言了。如果程序有任何看不懂或者哪个步骤不理解的地方都可以加我微信(15874274916)私聊我,或者有更好的思路解决办法都可以加我微私聊,一起探讨、希望可以正真的帮助到你,同时也可以扫下面的二维码关注我微信公众号,比如你还对生活、美食或者其它方面都感兴趣,都可以加微信交流,博主擅长讲解计算机相关方面的知识、如果大家对计算机方向、前端、移动端、服务端、数据结构、算法、网络、高数等等一些列方向比较迷茫或者不知道要学哪些?或者具体怎么学?或者其它方向有任何困惑都可以找我交流,谢谢大家关注。
以上是关于编程:将一个数字字符串转换成一个整数(不得调用C语言提供的将字符串转换为整数的函数)。的主要内容,如果未能解决你的问题,请参考以下文章
C语言试题三十二之编写函数function,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。
C语言试题三十二之编写函数function,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。