方法一:手工编写一个转换函数myfun()
#include<stdio.h>
#include<assert.h>
int myfun(char* str){
int i=0,n=0,flag=1;
if(str[0]=='-')//负数
{
i=1;
flag=-1;
}
for(;str[i]!='\0';i++){
assert(str[i]>='0'&&str[i]<='9');//条件判断
n=str[i]-'0'+n*10;
}
return n*flag;
}
int main(int argc,char* argv[]){
int a;
char str[]="-102";
a=myfun(str);
printf("%d\n",a);
return 0;
}
方法二:使用C中的标准库函数atoi()
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char* argv[]){
int a;
double d;
char str[]="-1024";
char strd[]="3.14";
a=atoi(str);
d=atof(strd);
printf("%d\n",a);
printf("%g\n",d);
return 0;
}
/*************************************/
#include<iostream>
#include<string>
#include<stdlib.h>
using namespace std;
int main(int argc,char* argv[]){
int a;
string str="-1024";
a=atoi(str.c_str());
cout<<a<<endl;
return 0;
}