当前位置: 首页 > 编程笔记 >

C/C++字符串与数字互转的实现

羊舌和安
2023-03-14
本文向大家介绍C/C++字符串与数字互转的实现,包括了C/C++字符串与数字互转的实现的使用技巧和注意事项,需要的朋友参考一下

C数字转字符串

int sprintf(char *str, const char *format, ...);
char c[10];
sprintf(c, "%d", 15); // 将整数转换成字符串

//浮点数转字符串,number为要转换的数,ndigit表示要转换的位数
char *gcvt(double number, int ndigit, char *buf);
//浮点数转字符串,number为要转换的数,ndigit表示要转换的位数, decpt和sign为输出参数,decpt为小数点位
//数,sign为符号。返回转换后的字符串,不含符号和小数点。
char *ecvt(double number, int ndigits, int *decpt, int *sign);
//fcvt与ecvt不同在于fcvt的ndigit参数表示小数点后的长度
char *fcvt(double number, int ndigits, int *decpt, int *sign); 

C字符串转数字

int sscanf(const char *str, const char *format, ...);
char str[] = "15.455";
int i;
float fp;
sscanf( str, "%d", &i ); // 将字符串转换成整数 i = 15
sscanf( str, "%f", &fp ); // 将字符串转换成浮点数 fp = 15.455000

int atoi(const char *nptr);
long atol(const char *nptr);
long long atoll(const char *nptr);


double strtod(const char *nptr, char **endptr);
float strtof(const char *nptr, char **endptr);
long double strtold(const char *nptr, char **endptr);
long int strtol(const char *nptr, char **endptr, int base);
long long int strtoll(const char *nptr, char **endptr, int base);
unsigned long int strtoul(const char *nptr, char **endptr, int base);
unsigned long long int strtoull(const char *nptr, char **endptr, int base);

C++字符串转数字

C++11增加std::stoi/stol/stoll等等函数可以 转换

C++数字转字符串

C++11增加了全局函数std::to_string,以及std::stoi/stol/stoll等等函数

string to_string (int val);
string to_string (long val);
string to_string (long long val);
string to_string (unsigned val);
string to_string (unsigned long val);
string to_string (unsigned long long val);
string to_string (float val);
string to_string (double val);
string to_string (long double val)



string和char *互转

string转char *或char []

//1. 调string的data函数
string s = "abc";  //data函数不会加结束符'\0' c_str会加
char *p = s.data();

//2. 调string的c_str函数
string s = "abc";
char *p = s.c_str();

//3. 调string的copy函数
string s = "abc";
char p[10];
s.copy(p, 3, 0); //复制3个字符,从0位置开始
p[3] = '\0';  //需要手动加结束符

char *或char []转string

string s;
char *p = "123";
s = p; //直接复制即可

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍C#实现实体类与字符串互相转换的方法,包括了C#实现实体类与字符串互相转换的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现实体类与字符串互相转换的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍Python 字典与字符串的互转实例,包括了Python 字典与字符串的互转实例的使用技巧和注意事项,需要的朋友参考一下 字典转换为字符串 输出结果为: <class 'str'> --------------------------------------------------------------- 字符串转换为字典 输出结果为: <class 'dict'> 以上这篇Pyt

  • 在程序设计中,为了方便处理,通常把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据结构。一个数组可以分解成多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按照数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。 本文主要介绍一维数组、二维数组和字符数组,其余的数组将会在以后的文章中介绍到。

  • 问题内容: 考虑以下代码 问题在于,SQL语句中的引号没有被转义。如果我使用PHP编程,则在将字符串插入SQL查询之前,将使用sqlite_escape_string之类的函数对字符串进行转义,但是我似乎找不到C ++中的等效函数。我可以构建自己的sqlite_escape_string之类的函数,但我确定必须已经编写/测试了一个… C ++是否有sqlite_escape_string()等效函

  • 问题 怎样将C中的字符串转换为Python字节或一个字符串对象? 解决方案 C字符串使用一对 char * 和 int 来表示, 你需要决定字符串到底是用一个原始字节字符串还是一个Unicode字符串来表示。 字节对象可以像下面这样使用 Py_BuildValue() 来构建: char *s; /* Pointer to C string data */ int len; /*

  • 主要内容:转换为C风格的字符串,string 字符串的输入输出,访问字符串中的字符,字符串的拼接,string 字符串的增删改查C++ 大大增强了对字符串的支持,除了可以使用C风格的字符串,还可以使用内置的 string 类。string 类处理起字符串来会方便很多,完全可以代替C语言中的字符数组或字符串 指针。 string 是 C++ 中常用的一个类,它非常重要,我们有必要在此单独讲解一下。 使用 string 类需要包含头文件 ,下面的例子介绍了几种定义 string 变量(对象)的方法: