有沒有覺得他跟一維陣列有點像,因為它也是陣列:字元陣列
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|
| 雞 | 彩 | 青 | 雞 | 彩 | 彩 | 雞 | 彩 | 青 | 雞 |
'\0'表示字串結尾的特殊字符稱為”空字符”它的數值是 0
每個烤肉串最後都有一個籤子
#include<string>char ans = 'A' ;
char grade = 'b' ;string name = "Terry" ;
string grade = "A++" ;#include<iostream>
#include<string>
using namespace std;
int main(){
string ans;
char a='1',b='2',c='3';
ans=a+b+c;
return 0;}試試看
可以用length() || size()知道字串長度🤓👆
#include <iostream>
#include <string>
using namespace std;
int main() {
string a = "hello";
cout << a.length(); //5
cout << a.size(); //5
return 0;}#include<iostream>
#include<string>
using namespace std;
int main(){
string a;
cin>>a;
for(int i=0;i<a.size();i++){
cout<<a[i];
}
cout<<endl;
for(int i=0;i<a.length();i++){
cout<<a[i];
}
cout<<endl;
for(int i=0;a[i]!='\0';i++){
cout<<a[i];
}
return 0;}
#include<iostream>
#include<string>
using namespace std;
int main(){
string a;
cin>>a;
for(int i=0;i<a.size();i++){
cout<<a[i]<<"Happy";
}
return 0;}
其他同理自己照題目推,不懂得來問
電腦沒辦法直接存「字」,所以必須用 數字編號 來代表。
就像是每個字符都有自己的座號,
ex:當我們叫10304,就知道在叫江O慈小朋友
叫04的後11號是叫10315的張O穎小朋友
不用特別背,電腦都記著
char a;
cin>>a;
if ('A'<=a && a<='Z') cout<<a<<"是大寫";
else if('a'<=a && a<='z') cout<<a<<"是小寫";
else cout<<a<<"不是英文字母";原理是利用他的ASCII碼大小來判斷
getline(cin,變數);用下面的程式碼讀取字串,這樣財部會被空格中斷輸入
vector 是 C++ 中最常用的動態陣列容器。元素可自動擴張(不像一般陣列大小固定)
支援隨機存取
插入、刪除、搜尋都很方便
需要 #include <vector>
vector<int> v;
vector<int> v(5);
// 大小 5,每個元素預設為 0
vector<int> v(5, 10);
// 大小 5,每個值都是 10
| 操作 | 函式 | 說明 |
| ------------|-------------| ---------------|
| 新增到尾端 | push_back(x)| 加在最後 |
| 移除尾端 | pop_back() | 刪除最後一個 |
| 判斷是否為空 | empty() | true/false |
| 清空所有元素 | clear() | 全刪除 |
| 插入 | insert() | 插入到某個位置 |
| 刪除 | erase() | 刪除某位置或某區間|陣列名.函式(你要處理的元素);放在主程式的外面
有名字 – 方便呼叫(像叫某人名字一樣)。
有輸入(參數) – 你可以把資料交給函式處理。
有回傳值 – 處理完的結果可以交回給主程式(也可以不回傳)。
能重複使用 – 寫一次,可以呼叫多次。
可重複使用的程式區塊,它能執行特定的任務,並且可以把結果回傳給呼叫它的地方。
把複雜問題拆成多個小任務,每個小任務用一個函式處理。
看程式時,不需要深入看每行細節,只要看「這個函式叫什麼名字」就知道功能。
如果程式需要修改,只要改 函式內部的程式碼。
函式讓你的程式像拼積木一樣,一塊一塊組成,容易管理。
沒有參數沒有回傳值
void 函式名(){
//程式碼;
}有參數沒有回傳值
void 函式名(宣告 變數;宣告 變數){
//程式碼;
}有參數有回傳值
宣告 函式名(){ //根據要回傳的東西宣告資料型態
//程式碼;
return 變數;
}全域整數
宣告 變數;
int main(){
//主程式;
}遞迴式(Recurrence Relation)是一種定義數列的方式,其中每一項均由前一項或前若干項的函數形式定義,常見於數學與計算機科學。其核心思想是將複雜的大問題拆解為自相似的較小問題,並透過基礎項(Initial Condition)向上推導。
遞迴式(Recursion)在數學與程式中核心概念相同,都是「大問題拆解成相似的相似小問題」以及「函數自身調用自身」。
兩者主要的區別在於:數學強調「定義」與「邏輯推理」,而程式設計強調「執行流程」與「終止條件」。
if 判斷句,在滿足特定條件時跳出遞迴,否則會導致無窮∞遞迴。#include<iostream>
using namespace std;
int mystery_function(int n){
if (n == 1){
return 1;}
else{
return mystery_function(n - 1)+mystery_funtion(n-2);}
}
int main(){
int n,a;
cin>>n>>a;
cout<<mystery_function(n)<<endl;
cout<<mystery_function(a);
return 0;}第 1 層:1 個點
第 2 層:1 + 2 = 3 個點
第 3 層:1 + 2 + 3 = 6 個點
規律:第 n 層的點數就是前 n 個整數的和。
公式:Tn=n(n+1)/2
#include <iostream> // 標頭檔要放最上面
using namespace std;
// 1. 計算「第 n 個三角形數」 (每一層的面積)
int T(int n) {
if (n == 1) return 1;
return T(n - 1) + n;
}
// 2. 計算「第 n 個四面體數」 (層數的累加)
int Te(int n) {
if (n == 1) return 1;
// 這裡會呼叫上面的 T(n),產生「遞迴」
return Te(n - 1) + T(n);
}
int main() {
int n;
cin >> n;
cout << Te(n) ;
return 0;
} def pascal(row, col):
# 基礎案例:如果是每一列的頭或尾,就回傳 1
if col == 0 or col == row:
return 1
else:
# 樹狀分岔:向上一列的兩個位置「討救兵」,再加起來
return pascal(row - 1, col - 1) + pascal(row - 1, col)
C(n,k)=C(n−1,k−1)+C(n−1,k)
struct是 C++ 用來「打包資料」最強大的基礎工具。
// 定義一個叫做 club 的結構
struct club {
// 這些是成員變數
string name; // 名字
int num; // 座號
string class; // 班級
}; // <=== 注意!這裡一定要有分號 ;使用 Struct 的寫法 (打包管理)就像將一堆散亂的資料打包整理好
// 方法 A:逐一填寫 (最清楚)
club s1; // 產生一個社員變數 s1
s1.name = "江沛慈"; // 用「點 (.)」來存取裡面的欄位
s1.num = 4;
s1.class = "Ren";
// 方法 B:快速初始化 (類似填表單,順序要對)
club s2 = { "劉姿瑩", 27, "Ren" };
cout<<s2.num;//27
return 0;
}