c语言中如何将字符串转化成整数型并输出?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中如何将字符串转化成整数型并输出?相关的知识,希望对你有一定的参考价值。

如上,现在遇到一点问题,定义一个char类型的变量比如是number,然后number扫描文件的结果是1234,但是这个结果并不能直接转化成int类型的整数,现在我想要用一个简单的方法把number转化成int型,那么该如何操作?还有,如果是一个数组的话,用printf输出的时候有没有办法不管位数直接一次性输出的?感激不尽

在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。

参考技术A

number  必定是字符数组

char number[5]="1234"; //字符 1,2,3,4 的ASCII值分别是81,82,83,84 所以减去‘0’(80)
int i,j=0,k=1;
for(i=0;number[i];i++)
   number[i]-='0';
i--;
for(;i>=0;i--)
 
 j+=number[i]*k;
 k*=10;

printf("%d",j);    //这样就转换成数字1234了

用printf输出的话 字符数组中存放的是字符串可以直接全部输出

其他的数组就只有一个个的输出了

参考技术B 用 sscanf。

char s[20]="1234 5678";
int number,n2;
sscanf(s,"%d %d",&number,&n2);
printf("number is: %d and number2 is: %d\n",number, n2);
========
数组,用循环语句输出:
int numbers[10]=111,22,3333,4444,5,66,77,8888,99,10;
int i;
for (i=0;i<10;i++) printf("%d ",numbers[i]);本回答被提问者采纳
参考技术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。
参考技术D char a[10];
int s=0,i=0;
while(a[i])

s=s*10+a[i]-48;
i++;

C语言中怎么将字符123转化成数字123

简单点的,只用加减乘除法转化。。
要求随意输入3个数字,就会出现相同的三个数字
这个思路
#include<stdio.h>
main()
char a,b,c;
int d;
printf("Please input three number:");
scanf("%c%c%c",&a,&b&c);
a=a-
b=b-
c=c-
d=a*100+b*10+c
printf("%d",d);

C语言中可以调用atoi()函数将字符串数字转换成整型数,所需要头文件为stdlib.h

函数原型:int atoi( char *s) ;

函数说明:将字符串s转换为整型值,返回给调用者。

参考代码:

相关函数还有:

atof():将字符串转换为双精度浮点型值。
atol():将字符串转换为长整型值。
strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。
strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。
strtoul():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。

参考技术A atof():将字符串转换为双精度浮点型值。
atoi():将字符串转换为整型值。
atol():将字符串转换为长整型值。
strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。
strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。
strtoul():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。来自:求助得到的回答
参考技术A 这里有一个函数可以直接用:
例如: char str[10] = "123";
int dd = atoi(str);
printf("%d\n",dd);//123本回答被提问者和网友采纳
参考技术B 强制转化

以上是关于c语言中如何将字符串转化成整数型并输出?的主要内容,如果未能解决你的问题,请参考以下文章

c语言中如何将字符串转化成整数型并输出?

c语言中如何将16进制字符串转化成10进制整数?

C语言程序答案:将一个整数n转成字符串输出。???不用递归法,还能怎么写

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

字符串转化为整数

C语言 将输入整数转换成字符串输出