目录
1.解决无法编译器无法使用C++11的问题:
打开【工具】->【编译选项】->【代码生成/优化】->【代码生成】->【语言生成(-std)】选择ISO C++11版本,点击确定。
2.c_str()的问题:
#include<iostream>
#include<string.h>
using namespace std;
bool check(char c[]){
if(c[0] == 'a') return false;
else return true;
}
int main(){
string s = "abc";
char c[20];
strcpy(c , s.c_str());
printf("%d" , check(c));
return 0;
}
s.c_str()的作用是将string的数据转化成char数组。注意char类型大小要大于string类型。而访问到后面的数据都是空的。
转换的时候要利用strcpy来转换,c_str()返回的是一个临时指针,不能对其操作。
当然其实string本身也支持for循环遍历,string里面的数据是char类型的,也就是利用%c访问;同时也支持直接修改里面的数据。
#include<iostream>
#include<string.h>
using namespace std;
int main(){
string s = "abc";
for(int i = 0 ; i < s.length() ; i ++){
s[i] = 'd';
}
cout << s;
return 0;
}