C函数的实现(strcpy,atoi,atof,itoa,reverse)
生活随笔
收集整理的這篇文章主要介紹了
C函数的实现(strcpy,atoi,atof,itoa,reverse)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在筆試面試中經(jīng)常會遇到讓你實現(xiàn)C語言中的一些函數(shù)比如strcpy,atoi等
1. atoi
把字符串s轉(zhuǎn)換成數(shù)字
?
int Atoi( char *s ) {int num = 0, i = 0;int sign = 1;for( i=0; isspace(s[i]); i++ );sign = (s[i] == '-')? -1:1;if( s[i] == '+' || s[i] == '-' )i++;for( ;isdigit(s[i]); i++ ){num = 10*num + (s[i]-'0');}return sign*num; }
2. strcpy(char *src, char *dst)
?
把src復(fù)制到dst中
?
int Strcpy(char* src, char *dst) { // register char *tmp;int i = 0;while( src[i]!= NULL ){dst[i] = src[i++];} }?
?
3.itoa( int n, char *s )
把數(shù)字轉(zhuǎn)化成字符串
?
void Reverse( char *s ) {int size = 0;char tmp;while( s[size] != NULL )size++;size--;int i=0;while( i <= size>>1 ){tmp = s[i], s[i] = s[size-i], s[size-i] = tmp;i++;} }void ItoA( int n, char *s ) {int sign = 1;if( n < 0 ){sign = -1; n = -n;}int i=0; do{s[i++] = n%10 + '0';} while((n/=10) > 0);if( sign == -1 )s[i++] = '-';s[i] = '\0';Reverse( s ); }
4. atof( char * s )
?
把字符串轉(zhuǎn)化成double類型
?
double AtoF( char *s ) {int sign = 1;int i = 0;for( i=0; isspace(s[i]); i++ );sign = (s[i] == '-')? -1:1;if( s[i] == '+' || s[i] == '-' )i++;double num = 0.0;double pow = 1.0;//整數(shù) for( ;isdigit(s[i]); i++ )num = num*10 + (s[i]-'0');for( i++; isdigit(s[i]); i++ ){num = num*10 + (s[i]-'0');pow *= 10;}return sign * (num/pow); }?
?
轉(zhuǎn)載于:https://www.cnblogs.com/suncoolcat/p/3341662.html
總結(jié)
以上是生活随笔為你收集整理的C函数的实现(strcpy,atoi,atof,itoa,reverse)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在ubuntu上搭建LNMP服务器
- 下一篇: 邮件联系人,如何恕不部分字母就能显示邮件