c语言中如何将字符串转化成整数型并输出?
在C语言中将字符串转化成整型有两种方法。
1 用atoi函数。
atoi的功能就是将字符串转为整型并返回。其声明为
int atoi(char *str);
比如atoi(“1234”);会返回整型1234。
2 用sscanf。
sscanf与标准格式化输入函数scanf类似,不过源并非是标准输入,而是字符串。
用sscanf可以处理更复杂的字符串。
比如字符串char * str = “a=1, b=2”;
定义int a,b;后
可以用
sscanf(str,”a=%d, b=%d”,a,b);
来将a,b值提取,计算后,a=1, b=2。
c语言中实现输入一个数字字符,然后转换成整数数字输出.怎么做?
字符串转整数可以有两种方法:
1.使用c语言自带的库函数:atoi。
函数原型:int atoi(const char *nptr);
功能:把字符串转成整型数。
例如:
#include stdlib.h
#include stdio.h
int main(void)
{
int n;
char *str = “12345”;
n = atoi(str);
printf(“int=%d\n”,n);
return 0;
}
/*
输出:
int = 12345
*/
2.可以自己编写一个转换函数:
#include stdio.h
#include stdlib.h
int atoi(char *s)
{
int t=0;
while(*s){
t=t*10+*s-‘0’;
s++;
}
return(t);
}
int main ()
{
char a[]=”12345″;
int n = atoi(a);
printf(“n=%d “,n);
return 0;
}
/*
输出:
n = 12345
*/
C语言中如何将读取的负数转换为正数?
可以加if判断啊,若小于零取反
如果读取的是字符串,可以使用atoi函数(把字符型转化为整形)
另外二楼说的也可行,用abs(a)函数
C语言中负号数怎样转换成正号数
数在计算机都以二进制方式存放的,二进制负数以补码形式存放,第一位为符号位,1表明是负数。
如果不懂什么是补码:
负数的补码是对其原码逐位取反,但符号位除外;然后整个数加1。 同一个数字在不同的补码表示形式里头,是不同的。比方说-15的补码,在8位2进制里头是11110001,然而在16位2进制补码表示的情况下,就成了1111111111110001。在这篇补码概述里头涉及的补码转换默认了把一个数转换成8位2进制的补码形式,每一种补码表示形式都只能表示有限的数字。 【例2】求-7的补码。 因为给定数是负数,则符号位为“1”。 后七位:+7的原码(0000111)→按位取反(1111000)→加1(1111001) 所以-7的补码是11111001。