C—的小问题

介绍了 string 与char int char* 的转化,for 枚举类型,和INT_MAX

类型转换

string转const char*

1
2
string s ="abc";
const char* c_s = s.c_str();
1
2
3
string str=“world”;
const char *p = str.c_str(); // 要加const或者等号右边用char*
const char *p = str.data(); // data():与c_str()类似,但是返回的数组不以空字符终止

const char*转string

1
2
const char* c_s ="abc";
string s(c_s);

string转char*

1
2
3
4
5
string s ="abc";
char* c;
const int len = s.length();
c =new char[len+1];
strcpy(c,s.c_str());

char*转string

1
2
3
const char* cpc ="abc";
char* pc =new char[100];//足够长
strcpy(pc,cpc);

数字转string

auto it = to_string(input) it可以是浮点数,input是char类型是 会得到对应的asicc码;

char 转string

只能通过初始化string 得到单个字母的string类型

1
2
3
4
string str(1,'a')
string str; str.push_back('a');
stringstream ss;
ss<<'a';string str2 = ss.str();

for 枚举用法

1
2
3
4
5
6
7
8
9
10
11
12
vector <int> vec(10.0);
string str="abcdefg";
map<string, int> my_map={{"a", 2},{"b", 3}};
for(auto &it : vec){
cout<<it<<endl; // 返回的是引用 可以用来修改容器内内容
}
for(auto it : str){
cout<<it<<endl; // 返回的是char
}
for(auto it : my_map){
cout<<it.first<<it.second<<endl;//返回的是pair变量
}

int类型的最大最小值

1
2
INT_MAX (INT32_MAX)
INT_MIN (INT32_MIN)