• 字符串转浮点型数值函数–C语言 #include<stdio.h> #include<string.h> /*-----字符串转化为数字-----*/ /*-----只有当是数值型的字符串时，才可以完成字符串的转换。目前仅仅是完成了整数部分的转换，*...
字符串转浮点型数值函数–C语言
#include<stdio.h>
#include<string.h>
/*-----字符串转化为数字-----*/
/*-----只有当是数值型的字符串时，才可以完成字符串的转换。目前仅仅是完成了整数部分的转换，*/
double Uintnum(char* digit)
{
unsigned int num = 0;
double  num1 = 0;
while (*digit != '\0')
{
if (*digit >= '0' && *digit <= '9')
{
num = num * 10 + (*digit - '0');
digit++;
}
else
{
if (*digit == '.')
{
digit++;
break;
}
else
num = 0;
break;
}
}
while(*digit != '\0')
digit++;
digit = digit - 1;
while (*digit != '.')
{
if (*digit >= '0' && *digit <= '9')
{
num1 = num1*0.1 + (*digit - '0');
digit--;
}
else
{
num1 = 0;
break;
}
}
return(num + num1*0.1);
}
void main()
{
double data;
char a[100];
printf("please input string including any ASCII !  \n ");  //打印字符串

scanf_s ("%s", a,30);
/*----借助scanf_s输入字符串，这个函数包含三个参数，第一个是输入类型，第二个是变量名，第三个是输入字符串的上限*/
data = Uintnum(a);
printf("%lf \n", data);

}

运行结果如下所示：


展开全文
• #include #include float mstrtof(char *num){ double n = 0, sign = 1, scale = 0; int subscale = 0, signsubscale = 1; if (*num == '-') { sign = -1, num++; /* Has sign? */ }
#include <stdio.h>
#include <math.h>

float mstrtof(char *num){

double n = 0, sign = 1, scale = 0;
int subscale = 0, signsubscale = 1;

if (*num == '-') {
sign = -1, num++;	/* Has sign? */
}

while (*num == '0') {
num++;
}

if (*num >= '1' && *num <= '9')	{
do {
n = (n * 10.0) + (*num++ - '0');
} while (*num >= '0' && *num <= '9');	/* Number? */
}

if (*num == '.' && num[1] >= '0' && num[1] <= '9') {
num++;
do {
n = (n * 10.0) + (*num++ -'0'), scale--;
} while (*num >= '0' && *num <= '9');
}	/* Fractional part? */

if (*num == 'e' || *num == 'E')	{	/* Exponent? */
num++;
if (*num == '+') {
num++;
} else if (*num == '-') {
signsubscale = -1, num++;		/* With sign? */
}

while (*num >= '0' && *num <= '9' ) {
subscale = (subscale * 10) + (*num++ - '0');	/* Number? */
}
}

n = sign * n * pow(10.0, (scale + subscale * signsubscale));	/* number = +/- number.fraction * 10^ +/- exponent */

return n;
}

int main(int argc, char *argv[])
{
char *temp = "12.34e-1";

printf("%f\n", mstrtof(temp));

return 0;
}


展开全文
• C语言字符串转数值   常用到字符串和数字的转换搜集整理 方便以后再用 atof(将字符串转换成浮点型数) atoi(将字符串转换成整型数) atol(将字符串转换成长整型数) strtod(将字符串转换成浮点数) strtol...
C语言字符串转数值

常用到字符串和数字的转换搜集整理 方便以后再用

atof(将字符串转换成浮点型数)
atoi(将字符串转换成整型数)
atol(将字符串转换成长整型数)
strtod(将字符串转换成浮点数)
strtol(将字符串转换成长整型数)
strtoul(将字符串转换成无符号长整型数)
toascii(将整型数转换成合法的ASCII 码字符)
toupper(将小写字母转换成大写字母)
tolower(将大写字母转换成小写字母)

atof(将字符串转换成浮点型数)
相关函数：atoi,atol,strtod,strtol,strtoul
表头文件：#include <stdlib.h>
定义函数：double atof(const char *nptr);
函数说明：atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('/0')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。
返回值：返回转换后的浮点型数。
附加说明：atof()与使用strtod(nptr,(char**)NULL)结果相同。
范例：

/* 将字符串a 与字符串b转换成数字后相加*/
#include<stdlib.h>
main()
{
char *a=”-100.23”;
char *b=”200e-2”;
float c;
c=atof(a)+atof(b);
printf(“c=%.2f/n”,c);
}
执行 c=-98.23

atoi(将字符串转换成整型数)
相关函数：atof,atol,atrtod,strtol,strtoul
表头文件：#include<stdlib.h>
定义函数：int atoi(const char *nptr);
函数说明：atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('/0')才结束转换,并将结果返回。
返回值：返回转换后的整型数。
附加说明：atoi()与使用strtol(nptr,(char**)NULL,10);结果相同。
范例：

/* 将字符串a 与字符串b转换成数字后相加*/
#include<stdlib.h>
mian()
{
char a[]=”-100”;
char b[]=”456”;
int c;
c=atoi(a)+atoi(b);
printf(c=%d/n”,c);
}
执行 c=356

atol(将字符串转换成长整型数)
相关函数：atof,atoi,strtod,strtol,strtoul
表头文件：#include<stdlib.h>
定义函数：long atol(const char *nptr);
函数说明：atol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('/0')才结束转换,并将结果返回。
返回值：返回转换后的长整型数。
附加说明：atol()与使用strtol(nptr,(char**)NULL,10);结果相同。
范例：

/*将字符串a与字符串b转换成数字后相加*/
#include<stdlib.h>
main()
{
char a[]=”1000000000”;
char b[]=” 234567890”;
long c;
c=atol(a)+atol(b);
printf(“c=%d/n”,c);
}
执行 c=1234567890

gcvt(将浮点型数转换为字符串,取四舍五入)
相关函数：ecvt,fcvt,sprintf
表头文件：#include<stdlib.h>
定义函数：char *gcvt(double number,size_t ndigits,char *buf);
函数说明：gcvt()用来将参数number转换成ASCII码字符串,参数ndigits表示显示的位数。gcvt()与ecvt()和fcvt()不同的地方在于,gcvt()所转换后的字符串包含小数点或正负符号。若转换成功,转换后的字符串会放在参数buf指针所指的空间。
返回值：返回一字符串指针,此地址即为buf指针。
范例：

#include<stdlib.h>
main()
{
double a=123.45;
double b=-1234.56;
char *ptr;
int decpt,sign;
gcvt(a,5,ptr);
printf(“a value=%s/n”,ptr);
ptr=gcvt(b,6,ptr);
printf(“b value=%s/n”,ptr);
}
执行 a value=123.45
b value=-1234.56

strtod(将字符串转换成浮点数)
相关函数：atoi,atol,strtod,strtol,strtoul
表头文件：#include<stdlib.h>
定义函数：double strtod(const char *nptr,char **endptr);
函数说明：strtod()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时 ('/0')才结束转换,并将结果返回。若endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr传回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分。如123.456或123e-2。
返回值：返回转换后的浮点型数。
附加说明：参考atof()。
范例：

/*将字符串a,b,c 分别采用10,2,16 进制转换成数字*/
#include<stdlib.h>
mian()
{
char a[]=”1000000000”;
char b[]=”1000000000”;
char c[]=”ffff”;
printf(“a=%d/n”,strtod(a,NULL,10));
printf(“b=%d/n”,strtod(b,NULL,2));
printf(“c=%d/n”,strtod(c,NULL,16));
}
执行 a=1000000000
b=512
c=65535

strtol(将字符串转换成长整型数)
相关函数：atof,atoi,atol,strtod,strtoul
表头文件：#include<stdlib.h>
定义函数：long int strtol(const char *nptr,char **endptr,int base);
函数说明：strtol()会将参数nptr字符串根据参数base来转换成长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制等。当base值为0时则是采用10进制做转换,但遇到如'0x'前置字符则会使用16进制做转换。一开始strtol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('/0')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。
返回值 返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。
附加说明：ERANGE指定的转换字符串超出合法范围。
范例：

/* 将字符串a,b,c 分别采用10,2,16进制转换成数字*/
#include<stdlib.h>
main()
{
char a[]=”1000000000”;
char b[]=”1000000000”;
char c[]=”ffff”;
printf(“a=%d/n”,strtol(a,NULL,10));
printf(“b=%d/n”,strtol(b,NULL,2));
printf(“c=%d/n”,strtol(c,NULL,16));
}
执行 a=1000000000
b=512
c=65535

strtoul(将字符串转换成无符号长整型数)
相关函数：atof,atoi,atol,strtod,strtol
表头文件：#include<stdlib.h>
定义函数：unsigned long int strtoul(const char *nptr,char **endptr,int base);
函数说明：strtoul()会将参数nptr字符串根据参数base来转换成无符号的长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制数等。当base值为0时则是采用10进制做转换,但遇到如'0x'前置字符则会使用16进制做转换。一开始strtoul()会扫描参数nptr字符串,跳过前面的空格字符串,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('/0')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符针由endptr返回。
返回值：返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。
附加说明：ERANGE指定的转换字符串超出合法范围。
范例：参考strtol()

toascii(将整型数转换成合法的ASCII 码字符)
相关函数：isascii,toupper,tolower
表头文件：#include<ctype.h>
定义函数：int toascii(int c)
函数说明：toascii()会将参数c转换成7位的unsigned char值,第八位则会被清除,此字符即会被转成ASCII码字符。
返回值：将转换成功的ASCII码字符值返回。
范例：

#include<stdlib.h>
main()
{
int a=217;
char b;
printf(“before toascii () : a value =%d(%c)/n”,a,a);
b=toascii(a);
printf(“after toascii() : a value =%d(%c)/n”,b,b);
}
执行 before toascii() : a value =217()
after toascii() : a value =89(Y)

tolower(将大写字母转换成小写字母)
相关函数：isalpha,toupper
表头文件：#include<stdlib.h>
定义函数：int tolower(int c);
函数说明：若参数c为大写字母则将该对应的小写字母返回。
返回值：返回转换后的小写字母,若不须转换则将参数c值返回。
范例：

/* 将s字符串内的大写字母转换成小写字母*/
#include<ctype.h>
main()
{
char s[]=”aBcDeFgH12345;!#$”; int i; printf(“before tolower() : %s/n”,s); for(i=0;I<sizeof(s);i++) s[i]=tolower(s[i]); printf(“after tolower() : %s/n”,s); } 执行 before tolower() : aBcDeFgH12345;!#$
after tolower() : abcdefgh12345;!#$toupper(将小写字母转换成大写字母) 相关函数：isalpha,tolower 表头文件：#include<ctype.h> 定义函数：int toupper(int c); 函数说明：若参数c为小写字母则将该对映的大写字母返回。 返回值：返回转换后的大写字母,若不须转换则将参数c值返回。 范例： /* 将s字符串内的小写字母转换成大写字母*/ #include<ctype.h> main() { char s[]=”aBcDeFgH12345;!#$”;
int i;
printf(“before toupper() : %s/n”,s);
for(i=0;I<sizeof(s);i++)
s[i]=toupper(s[i]);
printf(“after toupper() : %s/n”,s);
}
执行 before toupper() : aBcDeFgH12345;!#$after toupper() : ABCDEFGH12345;!#$

展开全文
• 参考文章链接：1.http://c.biancheng.net/cpp/html/1573.html2.http://c.biancheng.net/cpp/html/1574.html1....字符串整数转换为字符串：---------------------------------------------------------- 函数名 ...
参考文章链接：1.http://c.biancheng.net/cpp/html/1573.html2.http://c.biancheng.net/cpp/html/1574.html1.整型、浮点型——>字符串整数转换为字符串：----------------------------------------------------------    函数名                  作  用----------------------------------------------------------    itoa()                将整型值转换为字符串    itoa()                将长整型值转换为字符串    ultoa()               将无符号长整型值转换为字符串----------------------------------------------------------将浮点型值转换为字符串：-------------------------------------------------------------------------    函数名             作  用-------------------------------------------------------------------------    ecvt()    将双精度浮点型值转换为字符串，转换结果中不包含十进制小数点    fcvt()    以指定位数为转换精度，余同ecvt()    gcvt()    将双精度浮点型值转换为字符串，转换结果中包含十进制小数点-------------------------------------------------------------------------2.字符串——>整型、浮点型下列函数可以将字符串转换为数字：------------------------------------------------------------------------    函数名    作  用------------------------------------------------------------------------ atof()     将字符串转换为双精度浮点型值 atoi()     将字符串转换为整型值 atol()     将字符串转换为长整型值 strtod()   将字符串转换为双精度浮点型值，并报告不能被转换的所有剩余数字 strtol()   将字符串转换为长整值，并报告不能被转换的所有剩余数字 strtoul()  将字符串转换为无符号长整型值，并报告不能被转换的所有剩余数字------------------------------------------------------------------------
展开全文
• C语言提供了几个标准库函数，可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。 1.int/float to string/array: C语言提供了几个标准库函数，可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串，...
• c语言字符串 数字转换函数大全   atof(将字符串转换成浮点型数) atoi(将字符串转换成整型数) atol(将字符串转换成长整型数) strtod(将字符串转换成浮点数) strtol(将字符串转换成长整型数) strtoul(将字符串转换...
• 代码如下， #include <stdio.h> #include <stdlib.h> int main() ... //double处理方式相同 char b[5]; sprintf(b,"%2.1f",a); //精度为0.1 printf("%s\n",b); return 0; }...
• 3 头文5261件#include 4 功能4102将参数nptr中的字符串转1653为浮点型数据并返回。专5 需要注意的属是，必须是合法的字符串，即以实数形式或者科学计数法形式存储的字符串才可以进行转换，否则转换会出错。 比如...
• c语言字符串 数字转换函数大全 最近学数据结构老是做实验 常用到字符串和数字的转换 想找却发现网上的资料太散 所以搜集整理一下 方便以后再用 atof(将字符串转换成浮点型数) atoi(将字符串转换成整型数...
• 常用到字符串和数字的转换想找却发现网上的资料太散所以搜集整理一下，方便给大家以后再用atof(将字符串转换成浮点型数)atoi(将字符串转换成整型数)atol(将字符串转换成长整型数)strtod(将字符串转换成浮点数)strtol...
• c语言字符串 数字转换函数大全 最近学数据结构老是做实验 常用到字符串和数字的转换 想找却发现网上的资料太散 所以搜集整理一下 方便以后再用 atof(将字符串转换成浮点型数) atoi(将字符串转换成...
• atof(将字符串转换成浮点型数) atoi(将字符串转换成整型数) atol(将字符串转换成长整型数) strtod(将字符串转换成浮点数) strtol(将字符串转换成长整型数) strtoul(将字符串转换成无符号长整型数) toascii(将整型数...

...

c语言 订阅