当前位置:首页 » 编程语言 » c语言怎么把字符型转换为整型
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言怎么把字符型转换为整型

发布时间: 2023-07-20 21:06:25

c语言中实现输入一个数字字符,然后转换成整数数字输出.怎么做

字符串转整数可以有两种方法:

1.使用c语言自带的库函数:atoi。

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

功能:把字符串转成整型数。

例如:

#include<stdlib.h>
#include<stdio.h>
intmain(void)
{
intn;
char*str="12345";
n=atoi(str);
printf("int=%d ",n);
return0;
}
/*
输出:
int=12345
*/

2.可以自己编写一个转换函数:

#include<stdio.h>
#include<stdlib.h>
intatoi(char*s)
{
intt=0;
while(*s){
t=t*10+*s-'0';
s++;
}

return(t);
}
intmain()
{
chara[]="12345";
intn=atoi(a);
printf("n=%d",n);
return0;
}
/*
输出:
n=12345
*/

❷ 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怎么将string转换成int

首先感谢几位知乎老兄指教,这篇文章发过一次,题目为C++ atoi关键字,确实是自己错了,敬师不到,学艺不精,谢谢各位指教。因为工作需要,学起C++之所以在知乎发文章,只是想记录一下自己的学习笔记,给自己点儿结果反馈,促进学习。有些地方有待斟酌甚至错误,以免误人子弟,请各位多指教,即使是嘲笑和鄙视鄙人也很能接受,并且万分感谢!

作用
atoi()函数将数字格式的字符串转换为整数类型。例如,将字符串1253124127转换成数字1253124127。

注意
首要注意
atoi函数可以转化如下这种字符串 1fdafhdjfhkas

关于参数的注意事项
,atoi()函数的参数是要转换的字符串。该字符串的格式为

[空格][符号][数字]

其中,空格可以是键盘中的空格字符或者是Tab字符;符号可以是表示正数的“+”,也可以是表示负数的“-”;数字即为数字字符串。所以,atoi()函数参数可以是

+123

-456

需要注意的是,空格和“+”可以省略。所以,atoi()函数参数还可以是

123

-456

关于返回值的注意事项
如果atoi()函数转换成功,则该函数的返回值是转换后的整型。如果atoi()函数转换失败,例如要转换的类型超过了int表示的范围,如果要转换的是正数,则返回INT_MAX(2147483647),如果要转换的是负数,则返回INT_MIN(-2147483648)。代码如下所示

调用方法
//该函数的格式为

int atoi(const char* str)

//其中,参数str是要转换的字符串,返回值是转换后的整数。
int main(){
const char* str1="12493265713256"
const char* str2="8fdafhdjfhkas"
int outNm=atoi(str1)
}

❹ c语言char型字符串转换成int型字符串

1、把char型转换成int类型。

for(int i=0;i&lt;str.length();i++)

{

char temp_char=str.charAt(i);

//把字符转换成数字方法一

int temp_int=temp_char-'0';

//把字符转换成数字方法二

int temp_int=Integer.parseInt(String.valueOf(temp_char));

}

第一种办法:通过charAt(i),把字符串的每位变成char型,然后用当前字符减去字符0(temp_char-'0'),得到当前字符的int值。

第二种办法:把字符再转成字符串,然后再强制转换成int型。

2、把字符串拆分成一位一位的

第一种方法:循环后charAt(i);

注意:charAt(i)得到的是字符串对应的每位字符,可是不能直接转成int,转成int依然是ASCII值。

第二种方法:char[]temp=str.toCharArray();

注意:char[]里的内容不是字符串的每位字符,而是每位字符的ASCII值。

具体如下:

package cjl;

import java.util.Scanner;

/**

一维码有一种编码是ean13,是一串13位数字。其中第13位是校验码,作用是校验前面12个数字是否正确。

校验方法如下:

1、前12位数字从左起,将所有的奇数位相加得出一个数a,将所有的偶数位相加得出一个数b

2、将数b乘以3再与a相加得到数c

3、用10减去数c的个位数,如果结果不为10则校验码为结果本身,如果为10则校验码为0

请在控制台任意输入一个12位数字,然后输出校验码

author ff

/

public class CheckCode{

public void checkCode(String str)

{

int checkCode=0;

int a=0;//奇数位的和

int b=0;//偶数位的和

for(int i=0;i&lt;str.length();i++)

{

char temp_char=str.charAt(i);

//把字符转换成数字方法一

int temp_int=temp_char-'0';

//把字符转换成数字方法二

//int temp_int=Integer.parseInt(String.valueOf(temp_char));

//System.out.println("temp_char="+temp_char);

//System.out.println("temp__int="+temp_int);

if((i+1)%2==0)//偶数位

{

b+=(int)temp_int;

}

else//奇数位

{

a=a+(int)temp_int;

}

}

int c=a+b*3;

int c_gw=c%10;

int d=10-c_gw;

//System.out.println("a="+a+"b="+b+"c="+c+"c_gw="+c_gw+"d="+d);

if(d==10)

{

checkCode=0;

}

else

{

checkCode=d;

}

System.out.println("checkCode="+checkCode);

}

public void Input()

{

while(true){

Scanner scanner=new Scanner(System.in);

System.out.println("请输入一个12位的数字。。。。。。");

String str=scanner.nextLine();

if((str.length()==12)&&(str.matches("[0-9]+")))

{

checkCode(str);

break;

}

}

}

/**

param args

/

public static void main(String[]args){

CheckCode codeVo=new CheckCode();

codeVo.Input();

}

}

运行结果:

请输入一个12位的数字。。。。。。

111111111111

checkCode=6

(4)c语言怎么把字符型转换为整型扩展阅读:

char是计算机编程语言(c、c++、java、VFP等)中可容纳单个字符的一种基本数据类型。

char是一个数据类型,作用是定义字符型变量(单个或是字符串)。

比方int是整形数据,int a=3;这里int是类型,a是整型变量,3是赋值;

char s='A';char是字符类型,s是字符型变量,A是赋值给变量s;

char s[]="c program";char是字符类型,s[]是字符型数组,"c program"是赋给数组的值。

❺ C语言怎么把字符串转化为整形数字 是-'0'吗

好吧
我给你看看我的程序吧
#include<stdio.h>
#include<cstring>
int main()
{
char zifu[80];
int shuzi[80];
gets(zifu);//你的gets用对了哦
for(int i=0;i<strlen(zifu);i++)//由于字符数组下表从0开始 所以是0
{//同时strlen(zifu)是zifu数组的字符数量 如果用80会有空字符的哦
shuzi[i]=zifu[i]-'0';//是-'0' 也可以写成-48
}
for(int i=0;i<strlen(zifu);i++)
printf("%d",shuzi[i]);
return 0;
}