0
点赞
收藏
分享

微信扫一扫

c字符串转数字(c++字符串转数字)


怎么样将字符串型阿拉伯数字转换为数字值?怎么样将字符串型阿拉伯数

合法数字数据由可选的正负号开始,后面跟着一个或多个数字(可选地包括十进制分数),后面跟着可选的指数

S7-300中怎么把一串数字转化为字符串

参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 ) 字符时停止转换,返回整型数。

C语言字符转换为数字

#include

void main()

int i=10;

char s[10];定义定符数组

sprintf(s,"%d",i);//把字转换成字符放到数据里

// itoa(i,s,10); //效果一样的

printf("%s",s);//打印结果

C语言字符转数字

#include 

int fun(char s[]){

int i=0,n=0;

while(s[i]!='\0')

{n=n*10+s[i]-'0';i++;}

return n;

int main(){

char s[80]={'\0'};

scanf("%s",&s);

printf("%d",fun(s));

return 0;

}//运行示例:

代码如下:

#include 

#include 

int atoi(const char *str)

int val = 0, sign = 1;

const char *p = str;

// 判断正负号

if (*p  '9') {

if (*p == '+') {

sign = 1;

else if (*p == '-') {

sign = -1;

else {

return val;

p++;

while (*p != '\0') {

if (*p  '9') {

break;

val = val * 10 + (*p - '0');

p++;

return val * sign;

int main()

int n;

n = atoi("1234");

printf("%d\n", n);

n = atoi("-1234");

printf("%d\n", n);

system("pause");

return 0;

}运行结果:

你的字符串是存在char* a中吧。

*a就是第一个字符,*(++a)就是第二字符。再来一次*(++a)就是第三个字符,但是记得不要记a加的出了字符串的界就行了。

要不就把串口发来的数据存到一个char a[10]的数组中。然后用的时候用下标去一个一个取,比如:

a[0]就是第一个字符,a[1]就是第二个字符。

单独取出来的字符再和'0'这个字符相减就是你的字符表示的真实数字。

比如一个char a = '9'.

int number = a - '0';

这样number中就存的是数字9.

第一种情况,如果你的字符串是存在char *s中,像这样:

char *s = "5670";

这样,第一个字符就是

char a = *s;

int number1 = a - '0'; //这里number1中存的就是数字5

同理,再接着写

a = *(++s);

int number2 = a - '0';//这里的number2中存的就是数字6

第三个字符,接着写:

a = *(++s);

int number3 = a - '0'j;//number3中存的就是数字7

第四个字符;接着:

a = *(++s);

int number4 = a - '0';//这时number4中存的就是数字0

这个时候再把四个数字,存到你的l和r中:

int l = number0*10+number2;

int r = number3*10+number4;

第二种情况,如果从串口取到的字符都是存在一个数组中,比如:

char a[10];

这样你就用数组的标号取就可以了。功能:数字字符串转整型int,去除高位0。

注意:不要输入超出int范围。

#include 

#include 

int pw10(int m);//计算10次方

int str2int(char *nums);

int main()

char nums[]="0103456";

int num;

printf("原字符串:%s\n",nums);

num=str2int(nums);

printf("转成整型后的数字为:%d\n",num);

return 0;

int pw10(int m)//计算10次方

int i,mu=1;

if(m==0)

return 1;

for(i=0;i

mu= mu*10;

return mu;

int str2int(char *nums)

char *p=nums;

int len=strlen(nums),i,m=0,sum=0;

while(1)//去高位0

{

if(*p=='0')

p++;

else

break;

}

for(i=len-1;&nums[i]>=p;i--)

sum=sum+(nums[i]-'0')*pw10(m++);

return sum;

举报

相关推荐

0 条评论