C++ 类型转换 atoi atol atof itoa ftoa <stdlib.h>

来源:互联网 发布:魅力女生知乎 编辑:程序博客网 时间:2024/05/19 17:09



1. atoi

int atoi ( const char * str );

Convert string to integer

Parses the C string str interpreting its content as an integral number, which is returned as anint value.
/* atoi example */#include <stdio.h>#include <stdlib.h>int main (){  int i;  char szInput [256];  printf ("Enter a number: ");  fgets ( szInput, 256, stdin );  i = atoi (szInput);  printf ("The value entered is %d. The double is %d.\n",i,i*2);  return 0;}
output
Enter a number: 73The value entered is 73. The double is 146.


2. atol
long int atol ( const char * str );

Convert string to long integer

Parses the C string str interpreting its content as an integral number, which is returned as along int value.
/* atol example */#include <stdio.h>#include <stdlib.h>int main (){  long int li;  char szInput [256];  printf ("Enter a long number: ");  gets ( szInput );  li = atol (szInput);  printf ("The value entered is %d. The double is %d.\n",li,li*2);  return 0;}
output
Enter a number: 567283The value entered is 567283. The double is 1134566.
3. atof
double atof ( const char * str );

Convert string to double

Parses the C string str interpreting its content as a floating point number and returns its value as adouble.

/* atof example: sine calculator */#include <stdio.h>#include <stdlib.h>#include <math.h>int main (){  double n,m;  double pi=3.1415926535;  char szInput [256];  printf ( "Enter degrees: " );  gets ( szInput );  n = atof ( szInput );  m = sin (n*pi/180);  printf ( "The sine of %f degrees is %f\n" , n, m );  return 0;}OutputEnter degrees: 45The sine of 45.000000 degrees is 0.707101
4. itoa
char *  itoa ( int value, char * str, int base );

Convert integer to string (non-standard function)

Converts an integer value to a null-terminated string using the specifiedbase and stores the result in the array given by str parameter.
This function is not defined in ANSI-C and is not part of C++, but is supported by some compilers.A standard-compliant alternative for some cases may be sprintf:
  • sprintf(str,"%d",value) converts to decimal base.
  • sprintf(str,"%x",value) converts to hexadecimal base.
  • sprintf(str,"%o",value) converts to octal base

/* itoa example */#include <stdio.h>#include <stdlib.h>int main (){  int i;  char buffer [33];  printf ("Enter a number: ");  scanf ("%d",&i);  itoa (i,buffer,10);  printf ("decimal: %s\n",buffer);  itoa (i,buffer,16);  printf ("hexadecimal: %s\n",buffer);  itoa (i,buffer,2);  printf ("binary: %s\n",buffer);  return 0;}
Output
Enter a number: 1750decimal: 1750hexadecimal: 6d6binary: 11011010110
5. ftoa
#include <sstream>string convertDouble(double value) {  std::ostringstream o;  if (!(o << value))    return "";  return o.str();}

原创粉丝点击