编程:将一个数字字符串转换成一个整数(不得调用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语言中字符串和整数小数相互转换的函数都有啥?

C语言编程:用递归法将一个整数n转换成字符串。

程序设计:将一个数字字符串转换成与其面值相同的长整型整数

C语言试题三十二之编写函数function,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。

C语言试题三十二之编写函数function,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。

用C语言递归法将一个整数化为字符串