1001. A+B Format 字符串

时间:2021-07-29 09:22:56

题目及答案链接

https://www.liuchuo.net/archives/1888

c++ 有关 字符串 和各种类型的转换

#include <string>

string a;

a=to_string(b);  //b可以是 任何基础  【数值】 类型 不包括 char

#include <cstdlib>

valT=atox(b)  //x可以换成 i l f,b必须是char * 类型;因为这个函数是从c来的。b必须是符合转换的字符串

        //atox 是ascii to x  的意思,atoi 字符串转整形,atol 串转长整,atof 串转double

valT=strtox(char*a,char**endptr,base)  //x可以是l ul d  ,算是atox的改良版,strtol 串转long int ,strtoul 串转无符long , strtod 串转double

              //第一个参数和atox(b)的b类似,是字符串,不要求串全部都是要转换的内容(没有符合子串返回0)

               //第二个参数是可以为NULL,或者char*变量的【地址】,注意是char*变量的地址,不是char*,null则函数无视null,否则*endptr指向

               不合条件而终止的字符串中的字符指针,例如串为“abc123def”;则函数运行完endptr指向‘d’的位置(已经展示了相对于atox的优点)

              例:char* a,*b; strtol(a,&b,10);

              //第三个参数是base,表示用什么进制解释 串中的数字,输出还是十进制,若base为0则自动匹配,一般都是10

string ,char*,char[],const char* 之间的转化

string 转 char*.

//string st;

char* c=(char*)st.date();

const char* b=st.date();

const char* b=st.c_str()

string 转char[]

//char b[x];string st;

st.copy(b,个数n,起始下标);

b[n]='\0';【注意,复制完后,b只是字符数组,要手动在最后添加‘\0’使其成为字符串】

或者手动for循环挨个赋值

char *  char[]转string

直接赋值即可