【C语言】编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)

/*
	编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
例如:"12"  	返回12
"-123" 返回-123
函数原型:int my_atof(char *str)

*/
#include <stdio.h>

int my_atof(char *str)
{
	int flag=0;
	int m=0;
	if(*str=='-')
	{
		flag=1;
		str++;
	}
	while(*str!='\0')
	{
		if(*str<'0'|| *str >'9' )
			return 0;
		m*=10;
		m+=*str-'0';
		str++;
	}
	if(flag==0)
		return m;
	else
		return m*-1;

}

int main()
{
	char s[100]={0};
	scanf("%s",s);
	printf("%d\n",my_atof(s));
	return 0;
}

时间: 2024-10-13 02:43:24

【C语言】编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)的相关文章

C语言 将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数 函数原型:double my_atof(char *str)

编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数.负浮点数) 例如:"12.34"  返回12.34 "-123.34" 返回-123.34 函数原型:doublemy_atof(char *str) 提示: 需要在函数中判断负号,小数点,还要判断是不是数字字符.在判断小数点时需定义一个计数器来计算小数点后数字字符的个数. #include <stdio.h> #include <math.h> double my_at

【C语言】将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)

#include <stdio.h> /* 编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数.负浮点数) 例如:"12.34" 返回12.34 "-123.34" 返回-123.34 函数原型:double my_atof(char *str) {} */ double my_atof(char *str) { double m=0,n=0,x=1; int flag=1; int flag2=0; if(*str=='-') //

【C语言】数字字符串转换成这个字符串对应的数字。

(1) int ascii_to_integer(char *str)函数实现. 要求:这个字符串参数必须包含一个或者多个数字,函数应该把这些数字转换为整数并且返回这个整数.如果字符串参数包含任何非数字字符,函数就返回零.不必担心算数溢出. 提示:你每发现一个数字,把当前值乘以10,并把这个值和新的数字所代表的值相加. 直接上代码: #include <stdio.h> #include <assert.h> int ascii_to_integer(char *str) { in

C语言 编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列

编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列. #include <stdio.h> #include <string.h> #include <assert.h> int reverse_string(char * str) { assert(str); int len=strlen(str); char *ch=str+len-1; while(len>1) { char tmp=*st

C语言 编写一个函数,用递归方式求最大公约数。

编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数.利用递归方式实现. #include <stdio.h> int gcd(int a,int b) { int tmp; if(a==0 || b==0) return 0; if(a<b) { tmp=a; a=b; b=tmp; } if(a%b==0) return b; else return gcd(b,a%b); } int main() { int num; num=gcd(12,4); printf(&

把数据库中有关枚举项值的数字字符串转换成文字字符串

标题可能无法表达我的本意.比如,有这样一个枚举: public enum MyChoice { MyFirstChoice = 0, MySecondChoice =1, MyThirdChoice = 2 } 数据库中,某表某字段保存值为"0,1,2",在显示的时候,我们希望是"第一个选择,第二个选择,第三个选择".如何做呢? 可以为枚举项上面标注自定义特性.先自定义一个特性如下: public class EnumDisplayNameAttribute : A

二进制字符串转换成中文字符串

//Value:二进制字符串如:11000111 Function ConvertBinToStr(Value : ansistring):ansistring; //把二进制数据转化为字符串 Var tempHex : ansistring; i, tempInt : integer; begin Result := ''; if trim(Value) = '' then Exit; tempHex := BinToHexEachOther(Value,true);//二进制转成十六进制 i

C# 解析16进制字符串。将16进制字符串转换成明文字符串

将诸如 字符串 “73 6F 75 6E 64 34 2F 64 65 6D 6F 31 32 38 2E 6D 70 33 00” 转换成明文的方法 方法定义: private static string HexStringToString(string hexString, Encoding encoding = null) { if (string.IsNullOrEmpty(hexString)) return string.Empty; if (encoding == null) en

用c语言实现 编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)

<p align="left">例如:"12.34"  返回12.34</p><p align="left">        "-123.34" 返回-123.34</p><p align="left">函数原型:doublemy_atof(char *str)</p><p align="left">{}