第1个回答 推荐于2018-04-18
下面是用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上通过编译,可以正确运行本回答被网友采纳
第2个回答 2011-05-28
#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);
}
没有考虑意外情况,但输入数字字符串是正确的
第3个回答 2011-05-29
符号要分开检测
字符串的话 int a = '1234' - '0';
如果遇到负号那么 int a = - ( '1234' - '0' )
第4个回答 2011-05-28
不知道要用什么语言写呐?C? 这我不会,,,不过可以给你个思路哦!
比如要把 字符串 '1' 转为整型,,可以先得到它的ascii码,然后再减30就是1了