📌 字串就是「連續的字元」
處理字串有兩種主要方式:
📌 最後必須以 \0
(null 字元) 作為結尾
📌#include <iostream>
using namespace std;
int main()
{
char name[20];
cout << "請輸入名字: ";
cin >> name;
cout << "你好, " << name << endl;
return 0;
}
📌#include <iostream>
using namespace std;
int main()
{
char words[5][20];
for (int i = 0; i < 5; i++)
{
cin >> words[i];
}
return 0;
}
📌 可使用「+」拼接字串、比較大小、取得長
📌 cin.ignore() → 清除緩衝區
📌 getline() → 讀取整行,避免遇到空白停止
📌#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
cout << "請輸入名字: ";
cin >> name;
cout << "你好, " << name << endl;
cin.ignore();
string fullName;
cout << "請輸入全名: ";
getline(cin, fullName);
cout << "歡迎, " << fullName << endl;
return 0;
}
📌#include <iostream>
#include <string>
using namespace std;
int main()
{
string words[5];
for (int i = 0; i < 5; i++)
{
cin >> words[i];
}
return 0;
}
陣列 | 字串 | |
---|---|---|
本質 | 一群相同型別的資料 | 一串字元組成的陣列 |
宣告方式 | int score[5]; |
char name[10]; 或 string name; |
內容儲存 | 整數、浮點數 | 字元序列 |
存取方式 | score[0] = 90; |
name[0] = 'A'; |
問題 | 陣列溢位 | 忘記 \0 |
搭配迴圈 | for (int i=0; i<5; i++) cout<<score[i]; |
for (int i=0; i<name.size(); i++) cout<<name[i]; |
字串的處理方式主要有兩種
std::string
C 字串本質是字元陣列
需要小心處理 \0
結尾與陣列大小
容易因越界或缺少結束符號而出錯
std::string
能自動管理大小
並提供各種操作方法