字符串
- 字符串长度
#include <string.h>
unsigned int strlen(const char *);
strlen计算长度时不计\0
.sizeof()计算'\0'
由于字符串以'\0'结尾,定义一个含有10个字符的字符串束腰一个11元素的一维字符数组
- C++ String copy
string str1 = “12345”;
string str2;
1.str2 = str1;
2.str2.assign(str1);
3.str2=new string(str1.c_str()).
- 反转C++ String
1. 使用vector
#include <vector>
#include <string>
str=reverse(str2.begin(),str2.end());
2. 自己写
void reverseStr(string &str) {
int first = 0;
//这里可以看出vector string的size不包含\0
int last = str.size()-1;
while(first<last) {
char temp = str[first] ;
str[first] = str[last];
str[last] = temp;
first++;
last--;
}
}
- 字符串操作
- 子串
str = str.substr(0,str.size()-2);
- 子串
- int转字符串
to_string(int)
容器
- C++容器长度a.size()(返回字符数,STL容器都有这个方法)
- pop_back() 去掉最后一个
- 二维数组容器
vector<vector<int> > v;
for(int i=0;i<10;++i)
{
vector temp; ///定义一个一维的 也就是 二维的元素类型,二维可以看做 一维的一维数组。
for(int j=0;j<5;++j)
{
temp.push_back(i*j);
}
v.push_back(temp); ///将一维的压入二维中
}
或者
vector< vector<int> > (length-1,vector<int>(length-1,0));
输入输出
- 输入一个c数组
int n=0;
printf("please enter the number:\n");
scanf("%d",&n);
int *number=new int[n];
for(int i=0;i<n;++i)
scanf("%d ",&number[i]);
- 输入一个容器
std::vector<double> v;
for (double d; std::cin >> d; v.push_back(d)) {}