atoi:
atoi()函数属于c标准库, 添加头文件
atoi()函数原型
int atoi(const char *str)
函数描述: 將参数 str 所指向的字符串转换为一个整数(类型为 int 型).如果没有执行有效的转化, 返回一个零值.
strtol:
strtol()函数属于c标准库, 添加头文件
strtol() 函数原型
long int strtol(const char *str, char **endptr, int base)
函数描述: 將参数 str 所指向的字符串根据给定的 base 转换为一个长整数(类型为 long int 型)如果没有执行有效的转化, 返回一个零值.
注: atoi和strtol都是c里面的函数,它们的参数都是const char*,因此在用string时,必须调c_str()方法将其转为char*的字符串。
stoi:
stoi为string库中的函数, 需要添加头文件
stoi函数原型
int stoi (const string& str, size_t* idx = 0, int base = 10);
int stoi (const wstring& str, size_t* idx = 0, int base = 10);
函数描述: 將str 对象转换为一个整数(类型为 int 型). 如果转化成功, 返回转化后的整数. 如果转化失败, 会抛出异常, 所以在使用的时候应该有必要的异常处理.
itoa:
itoa()函数属于c标准库, 添加头文件
char *itoa( int value, char *string,int radix);
函数描述: 將一个整数转换为一个字符串, 返回指向这个字符串的指针.
sprintf:
添加头文件
函数原型:
int sprintf( char *buffer, const char *format, [ argument] … )
buffer:char型指针,指向将要写入的字符串的缓冲区
format:格式化字符串
[argument]...:可选参数,可以是任何类型的数据
函数描述: 把格式化的数据写入某个字符串缓冲区。返回写入buffer 的字符数,出错则返回-1.
例子
#include
int main( void )
{
char buffer[200], s[] = "student", ch = 'l';
int i = 35;
// 格式化并打印各种数据到buffer
sprintf( buffer, " String: %s\n", s );
sprintf( buffer, " Character: %c\n", ch);
sprintf( buffer, " Integer: %d\n", i );
return 0;
}
sscanf:
添加头文件
函数原型:
int sscanf( const char *buffer, const char *format, [ argument ]...);
buffer:char型指针,指向将要写入的字符串的缓冲区
format:格式化字符串
[argument]...:可选参数,可以是任何类型的数据
函数描述: 读取格式化的字符串中的数据。sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源。成功则返回参数数目,失败则返回-1.
例子
#include
int main( void )
{
char buffer[200], s[] = "student", ch = 'l';
int i = 35;
// 格式化并打印各种数据到buffer
sprintf( buffer, " String: %s\n", s );
sprintf( buffer, " Character: %c\n", &ch);
sprintf( buffer, " Integer: %d\n", &i );
return 0;
}
添加头文件
字符串到整数:
stringstream sstr(str);
int x;
sstr >> x;(即从sstr中提取数据)
整数到字符串:
stringstream sstr;
int x;
sstr << x;
string str = sstr.str();
注: stringstream不会主动释放内存, 重复使用需要清楚缓存,如stream.str("") 或 stream.clear().