C语言中,可以使用atoi函数将字符串转换为数字,如atoi("123")可以得到数字123。
atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。int atoi(const char *nptr) 函数会扫描参数 nptr字符串,会跳过前面的空白字符(例如空格,tab缩进)等。
如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回0。特别注意,该函数要求被转换的字符串是按十进制数理解的。atoi输入的字符串对应数字存在大小限制(与int类型大小有关),若其过大可能报错-1。
扩展资料:
C语言中数字转化为字符串的方案:
使用sprintf函数来实现,如sprintf("%d", 123)可以得到字符串"123"。
sprintf指的是字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数。使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性。解决这个问题,可以考虑使用 snprintf函数,该函数可对写入字符数做出限制。
参考资料来源:百度百科-atoi。
itoa (表示 integer to alphanumeric)是把整型数转换成字符串的一个函数。 windows环境下,在<stdlib.h>头文件中有。
char* itoa(int value,char*string,int radix);//value: 要转换的整数,string: 转换后的字符串,radix: 转换进制数,如2,8,10,16 进制。
atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。
int atoi(const char *nptr) 函数会扫描参数 nptr字符串,会跳过前面的空白字符(例如空格,tab缩进)等。
如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回 0 [1] 。特别注意,该函数要求被转换的字符串是按十进制数理解的。
atoi输入的字符串对应数字存在大小限制(与int类型大小有关),若其过大可能报错-1。
扩展资料:
参数str:要进行转换的字符串。
返回值:每个函数返回 int 值,此值由将输入字符作为数字解析而生成。 如果该输入无法转换为该类型的值,则atoi的返回值为 0。
itoa()函数:
itoa()原型: char *itoa( int value, char *string,int radix);。
原型说明:
输入参数:
value:要转换的数据。
string:目标字符串的地址。
radix:转换后的进制数,可以是10进制、16进制等,范围必须在 2-36。
功能:将整数value 转换成字符串存入string 指向的内存空间 ,radix 为转换时所用基数(保存到字符串中的数据的进制基数)。
返回值:函数返回一个指向 str,无错误返回。
注意:itoa不是一个标准的c函数,他是windows特有的,跨平台写程序,要用sprintf。
代码如下,应该存放在b[10]数组中。
#include<stdio.h>。
#include<string.h>。
#include<math.h>。
int main()
char a[10][10]={"BF","BB","7F","00"};。
int b[10];
int i,j;
int flag=0;。
int n;
int num;
for(i=0;!flag;i++)。
{
n=strlen(a[i]);。
num=0;
for(j=0;j<n;j++)。
{
if(a[i][j]>='A'&&a[i][j]<='F')。
{
num+=(a[i][j]-55)*pow(16,(n-j-1));。
}
else。
num+=(a[i][j]-48)*pow(16,(n-j-1));。
}
b[i]=num;。
if(num==0)。
flag=1;。
}
*(b+i)=-1;
for(i=0;*(b+i)!=-1;i++)。
{
printf("0x%08x\n",b[i]);。
}
return 0;
#include<stdio.h>。
//把一个整数字符串转换为一个数。
intascii_to_integer(char*string)。
intvalue;value=0;。
//逐个把一个整数字符串转换为一个数。
while(*string>='0'&&*string<='9'){。
value*=10;
value+=*string-'0';。
string++;
//错误检查:如果由于遇到一个非数字字符而终止,把结果设置为0。
if(*string!='\0')。
value=0;
returnvalue;
intmain()
char*numChar="102";。
printf("%d\n",ascii_to_integer(numChar)+3);。
return0;
扩展资料
C语言转义字符
1、使用制表符格式化输出
横向制表符\t可以用于格式化文本输出,假如我们要输出一组表格样式的数据,一种方法是使用输出多个空格对齐,另一种方法就是使用\t。在下面的程序中,我们为表格的第1列与第2列应用两次\t以使列之间有更多的间距。
2、使用反斜框输出文件路径
当我们需要在程序的运行日志或调试时输出文件路径信息,又或者像下面这样,简单的将一个路径输出到控制台,这时我们需要使用反斜框转义符来进行路径转义输出。
(1)使用常用标准函数库stdlib当中的字符串转换函数,可以把各种类型的字符串转换为相应类型的数字。
(2)使用输入输出标准函数库stdio当中的sscanf函数。
用标准库中的sscanf函数(其中格式控制字符的使用方法和scanf一致,%d读十进制整数,%x读16进制整数)。例如:char s[] = {"92283976 73b1c080 1e448b0 bd44dae6e"};int a, b, c, d;sscanf(s, "%d%x%x%x", &a, &b, &c, &d);前提是要保证字符串格式和格式控制符一致,否则后果不确定。另外,这里bd44dae6e在32位平台上超过int范围,如果要正确读入的话,需要使用long long,对应格式控制字符改用Lx或llx。
atof() 将字符串转换为双精度浮点型值;atoi() 将字符串转换为整型值;atol() 将字符串转换为长整型值;strtod() 将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字 ;strtol() 将字符串转换为长整值,并报告不能被转换的所有剩余数字 ;strtoul() 将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。