# 字串(String)
----
## STL容器(以後會講)
## 現在可以理解成char的陣列
----
## STL家族血繼限界
## 可彈性增減大小
## 有滿滿的方便函式可以用
----
## 擴增大小
```cpp=
#include <iostream>
using namespace std;
int main(){
string s;
cin >> s; //"apple"
s = s+" is yummy";
cout << s << '\n'; //"apple is yummy"
}
```
----
## .size()
```cpp=
#include <iostream>
using namespace std;
int main(){
string s = "horace orz";
cout << s.size() << '\n'; //10
}
```
----
## 取用最後字串最後面的元素
```cpp=
#include<iostream>
using namespace std;
int main(){
string s = "horace orz";
cout << s[s.size()-1] // z;
//因為第一個元素編號是0 -> 第n個元素編號是n-1
}
```
----
# 練習題
# CSDC #292
----
```cpp=
#include<iostream>
using namespace std;
int main(){
string s;
cin >> s;
bool det = 1;
for(int i = 0; i < s.size()/2; i++){
if(s[s.size()-1-i]!=s[i]){
det = 0;
break;
}
}
if(det){
cout << 1 << '\n';
}
else{
cout << 0 << '\n';
} //cout << det << '\n';
}
```
---
# 二維陣列
----
# 多個一維陣列
----

## Row排 column列
----
# 宣告
----
```cpp=
#include <iostream>
using namespace std;
int main(){
int arr[x][y];
//x排y列
}
```
----
# 取值存值
----

----
```cpp=
#include <iostream>
using namespace std;
int main(){
int arr[x][y];
for(int i = 0; i < x; i++){
for(int j = 0; j < y; j++){
cin >> arr[i][j];
}
}
}
```
----
# 練習題
# CSDC #293
----
```cpp=
#include<iostream>
using namespace std;
int main(){
int n, m; cin >> n >> m;
int add[m];
int score[m][n];
int avg[n];
int add_total = 0;
for(int i = 0; i < m; i++){
cin >> add[i];
add_total+=add[i];
}
for(int i = 0; i < m; i++){
for(int j = 0; j < n; j++){
cin >> score[i][j];
}
}
for(int i = 0; i < n; i++){
int total = 0;
for(int j = 0; j < m; j++){
total += score[j][i]*add[j];
}
avg[i] = total/add_total;
}
for(int i = 0; i < n; i++){
cout << avg[i] << " ";
}
}
```
## code
{"metaMigratedAt":"2023-06-17T14:35:53.603Z","metaMigratedFrom":"YAML","title":"字串(String)","breaks":true,"contributors":"[{\"id\":\"4fa49699-4204-4853-a27b-42a118fdac82\",\"add\":5258,\"del\":3077}]"}