一个购物网站开发的可行性建正建设集团有限公司网站
2026/1/23 14:57:34 网站建设 项目流程
一个购物网站开发的可行性,建正建设集团有限公司网站,wordpress主题放在那个文件夹,爱网云主机一、从“char 字符数组时代”#xff0c;进“string 新时代”。#x1f3f0;《string 王国奇遇记》—— C 中的 string 类型1、故事开场#xff1a;老房子 vs 智能城堡 #x1f3da;️#x1f3f0;在 C 世界里#xff1a;#x1f9d3; char 字符数组#x1f449; 像一排…一、从“char 字符数组时代”进“string 新时代”。《string 王国奇遇记》—— C 中的 string 类型1、故事开场老房子 vs 智能城堡 ️在 C 世界里char 字符数组 像一排老房子房间要提前算好忘记\0就出事搬家复制很危险string 像一座智能城堡房间不够会自己变大自动管理结尾很少踩坑 国王说“小朋友学会 string你就能轻松写程序啦”2、string 是什么第一认识 故事理解string是一个会照顾自己的字符小队队长会记住自己有多长会自动加“结束标志”会自己整理房间✨ 定义一个 string#include string using namespace std; string name Tom;不需要\0不需要算长度3、string vs char 数组简单对比⚖️项目char 数组string是否自动加结尾❌✅会不会越界容易很少能直接比较❌✅能直接输入整行麻烦简单适合小学生直观结论“string 是 char 数组的PLUS升级版”4、string 的输入与输出 超重要1️⃣ 输出超级简单string s Hello; cout s;2️⃣ 输入一个单词string s; cin s; 遇到空格会停和 char 数组一样3️⃣ 输入一整句话 ⭐⭐⭐string s; getline(cin, s); 讲给学生的话“getline 是耐心的书记官一直写到你按回车。”5、string 的长度 故事string 自己会数人数不用你操心string s Hello; cout s.length(); // 5或cout s.size(); // 一样不数\0而且你也不用管它6、访问 string 里的字符 string s Cat; cout s[0]; // C cout s[1]; // a 和数组一样用下标 但安全得多7、string 的拼接魔法 ✨ 故事string 会自动拉长城堡不用担心房子不够string a Hello ; string b Tom; string c a b; cout c; // Hello Tom还可以a b;char 数组要用strcatstring 用就行8、string 的比较 ⚖️超级友好 故事string 自己知道怎么比大小string a cat; string b cat; if (a b) { cout 一样; } 不需要strcmp 不需要cstring9、string 的常用“魔法技能” 重点1️⃣ 判断是不是空的 if (s.empty()) { cout 空字符串; }小故事string 王国里有个小门卫检查城堡里有没有住人。#include iostream #include string using namespace std; int main() { string s; cout 请输入字符串; getline(cin, s); if (s.empty()) { cout 城堡空空如也 endl; } else { cout 城堡里有人 s endl; } return 0; }示例输入输出输入回车输出城堡空空如也输入Tom输出城堡里有人Tom2️⃣ 清空字符串 s.clear();小故事string 王国的小朋友打扫城堡把城堡里的字母全清理干净。#include iostream #include string using namespace std; int main() { string s Hello World; cout 原来的字符串 s endl; s.clear(); // 清空 cout 清空后的字符串 s endl; cout 长度 s.length() endl; return 0; }输出原来的字符串Hello World 清空后的字符串 长度03️⃣ 查找字符或单词 string s I love C; s.find(love); // 找到位置 找不到会返回string::npos小故事string 王国有个侦探要找某个字母或单词的位置。#include iostream #include string using namespace std; int main() { string s I love C; string word love; size_t pos s.find(word); if (pos ! string::npos) { cout word 在位置 pos endl; } else { cout 没找到 word endl; } return 0; }输出love 在位置 2 注意找不到会返回string::npos4️⃣ 截取一部分子串 ✂️做题很方便string s abcdef; cout s.substr(2, 3); // cde 从第 2 位开始取 3 个小故事string 王国的剪刀手想剪下一段字母做成徽章。#include iostream #include string using namespace std; int main() { string s abcdef; string sub s.substr(2, 3); // 从下标 2 开始取 3 个字符 cout 原字符串 s endl; cout 截取的子串 sub endl; return 0; }输出原字符串abcdef 截取的子串cde5️⃣ 插入字符 string s Hello; s.insert(5, !);小故事string 王国想在城堡中间插入一块砖让城堡更漂亮。#include iostream #include string using namespace std; int main() { string s Hello; s.insert(5, !); // 在下标 5 插入 ! cout s endl; return 0; }输出Hello! 下标从 0 开始计数6️⃣ 删除字符 ️s.erase(1, 2); // 删除 2 个字符小故事string 王国里的清洁工把城堡中的某些字母删除。#include iostream #include string using namespace std; int main() { string s Hello; s.erase(1, 2); // 从下标 1 开始删除 2 个字符 cout s endl; return 0; }输出Hlo 删除了e和l剩下H和l、o10、string 和 char 数组如何互相变身 认识即可string → char 数组string s Hello; const char* p s.c_str(); 小学生阶段了解就好11、什么时候用 char 数组什么时候用 string 给学生的结论写作业 / 比赛 / 日常程序 用string学习底层 / 理解 C 语言 / 老代码 才用 char 数组12、送给学生的 string 口诀 string 是智能队长不用尾巴不用忙能拼能比还能剪写起程序真方便13、课堂演示小程序#include iostream #include string using namespace std; int main() { string name; cout 请输入你的名字; getline(cin, name); cout 你好 name endl; cout 名字长度 name.length() endl; if (name admin) { cout 欢迎管理员; } }二、️《string 王国 · 常见坑点》️ 坑 1cin后直接getline回车怪兽 故事小朋友先用cin留下了一个看不见的回车怪兽\n。getline一进门就被怪兽吓跑了❌ 错误示例int age; string name; cin age; getline(cin, name); // 直接读到空行✅ 正确做法cin age; cin.ignore(); // 吃掉回车 getline(cin, name);口诀cin 后用 getline先把回车吃掉先️ 坑 2以为string能自动读空格误会 故事小朋友以为 string 什么都能读结果cin s也怕空格❌ 误会代码string s; cin s; // 只能读到第一个词✅ 正确方式getline(cin, s);口诀整句要用 getline️ 坑 3下标越界城堡外的禁区 故事string 城堡虽然大但下标范围依然有界限❌ 错误示例string s cat; cout s[10]; // 禁区 正确认知合法下标0 ~ s.length()-1超出范围 →不可预料口诀城堡再大也有围墙️ 坑 4把length()当成最后一个下标 故事有人以为“长度是 3下标就到 3”❌ 错误理解string s dog; s[s.length()] !;✅ 正确理解s.length()是字符个数最后一个下标是length() - 1口诀长度不是下标减一才到家️ 坑 5误用其实这是优点 故事学过 char 数组的小朋友很紧张“不能用啊”❗ 真相string a cat; string b cat; if (a b) { // ✅ 正确 cout 一样; }string 和 char 数组不同口诀string 比内容等号可以用️ 坑 6忘记#include string 故事没有带魔法书string 魔法全部失效❌ 错误string s Hi; // 报错✅ 正确#include string口诀string 魔法先带书来️ 坑 7把find当成真假判断 故事小朋友以为“找不到就返回 0”❌ 错误示例if (s.find(cat)) { cout 找到了; }✅ 正确用法if (s.find(cat) ! string::npos) { cout 找到了; }口诀find 找不到npos 是信号️ 坑 8乱用substr越界剪刀✂️ 故事剪刀太大一刀剪出城堡外❌ 错误示例string s abc; cout s.substr(2, 5); // 危险 正确原则起点不能超过长度剪多少要合理口诀剪字符串别剪出界️ 坑 9频繁用拼接体力消耗 故事string 虽然聪明但一直拼接也会累效率问题。❌ 不推荐写法了解即可string s ; for (int i 0; i 10000; i) { s s a; }✅ 更好的方式了解即可string s; s.reserve(10000);小学生阶段知道有坑即可️ 坑 10以为 string 没有结尾字符 故事有人说“string 没有\0吧” 真相string内部仍然有\0只是你不用管口诀string 有尾巴只是你看不见 string 安全使用“护身符口诀”️整句输入用 getlinecin 后记得吃回车长度不是下标find 要和 npos 比string 城堡虽智能边界规则别忘记三、《string 专项练习 10 题闯关式》 适合对象初学 C 的小学生 故事背景string 王国闯关大冒险 目标熟练掌握string的输入、访问、修改、查找、截取、比较等操作 第一关string 新生报到入门 第 1 题欢迎来到 string 王国 故事新来的小朋友要向 string 国王报上自己的名字。 要求1️⃣ 定义一个string name2️⃣ 使用getline输入名字可能有空格3️⃣ 输出Welcome, xxx!✍️ 提示 一定要用getline 第二关字符小士兵下标访问 第 2 题第一个字符是谁 故事string 城堡的第一个士兵想知道自己是谁。 要求1️⃣ 输入一个字符串s2️⃣ 输出它的第一个字符✍️ 提示 使用s[0] 第 3 题最后一个字符的秘密 ️‍♂️ 故事最后一个字符躲在城堡最里面。 要求1️⃣ 输入字符串s2️⃣ 输出它的最后一个字符✍️ 提示s[s.length() - 1] 第三关string 体检中心长度 遍历 第 4 题字符串有多长 故事医生要检查 string 宝宝有多长。 要求1️⃣ 输入字符串s2️⃣ 输出字符串长度 第 5 题字符一个一个报数 故事string 城堡点名每个字符都要站出来。 要求1️⃣ 输入字符串s2️⃣ 使用for循环3️⃣ 每行输出一个字符✍️ 示例输入cat输出c a t 第四关string 魔法变形术修改 第 6 题变成大写勇士 ⚔️ 故事小写字母要穿上大写盔甲 要求1️⃣ 输入一个字符串只含小写字母2️⃣ 把所有字母变成大写3️⃣ 输出新字符串✍️ 提示a → A减去a - A 第五关字符串侦探查找 第 7 题有没有“cat” 故事侦探要在字符串中寻找神秘的cat。 要求1️⃣ 输入字符串s2️⃣ 如果包含cat输出YES3️⃣ 否则输出NO✍️ 提示 使用find 记得和string::npos比较 第 8 题第一个空格在哪 ␣ 故事空格精灵藏在字符串里。 要求1️⃣ 输入一行字符串2️⃣ 输出第一个空格的位置3️⃣ 如果没有空格输出-1 第六关字符串剪刀手截取 第 9 题名字和姓氏 ✂️ 故事string 小朋友叫 “Tom Lee”老师想分开名字和姓氏。 要求1️⃣ 输入一行字符串名字 空格 姓氏2️⃣ 输出名字3️⃣ 再输出姓氏✍️ 提示find( )substr 终极关string 守护者综合 第 10 题密码检查员 故事string 王国要设置安全密码 要求1️⃣ 输入一个字符串作为密码2️⃣ 如果满足以下条件输出OK否则输出NO✅ 条件长度 ≥ 6包含字母a✍️ 提示 用length()find()四、 string 专项练习 10 题参考程序 第一关string 新生报到入门 第 1 题欢迎来到 string 王国 #include iostream #include string using namespace std; int main() { string name; cout 请输入名字; getline(cin, name); // 小朋友报名字可能有空格 cout Welcome, name ! endl; return 0; } 第二关字符小士兵下标访问 第 2 题第一个字符是谁 #include iostream #include string using namespace std; int main() { string s; cout 请输入字符串; getline(cin, s); if (!s.empty()) { cout 第一个字符是 s[0] endl; } else { cout 字符串为空哦 endl; } return 0; } 第 3 题最后一个字符的秘密 ️‍♂️#include iostream #include string using namespace std; int main() { string s; cout 请输入字符串; getline(cin, s); if (!s.empty()) { cout 最后一个字符是 s[s.length() - 1] endl; } else { cout 字符串为空哦 endl; } return 0; } 第三关string 体检中心长度 遍历 第 4 题字符串有多长 #include iostream #include string using namespace std; int main() { string s; cout 请输入字符串; getline(cin, s); cout 字符串长度 s.length() endl; return 0; } 第 5 题字符一个一个报数 #include iostream #include string using namespace std; int main() { string s; cout 请输入字符串; getline(cin, s); cout 逐个字符输出 endl; for (size_t i 0; i s.length(); i) { cout s[i] endl; } return 0; } 第四关string 魔法变形术修改 第 6 题变成大写勇士 ⚔️#include iostream #include string using namespace std; int main() { string s; cout 请输入小写字母字符串; getline(cin, s); for (size_t i 0; i s.length(); i) { if (s[i] a s[i] z) { s[i] s[i] - (a - A); // 小写 → 大写 } } cout 大写字符串 s endl; return 0; } 第五关字符串侦探查找 第 7 题有没有“cat” #include iostream #include string using namespace std; int main() { string s; cout 请输入字符串; getline(cin, s); if (s.find(cat) ! string::npos) { cout YES endl; } else { cout NO endl; } return 0; } 第 8 题第一个空格在哪 ␣#include iostream #include string using namespace std; int main() { string s; cout 请输入字符串; getline(cin, s); size_t pos s.find( ); if (pos ! string::npos) { cout pos endl; } else { cout -1 endl; } return 0; } 第六关字符串剪刀手截取 第 9 题名字和姓氏 ✂️#include iostream #include string using namespace std; int main() { string fullName; cout 请输入名字和姓氏; getline(cin, fullName); size_t pos fullName.find( ); if (pos ! string::npos) { string firstName fullName.substr(0, pos); string lastName fullName.substr(pos 1); cout 名字 firstName endl; cout 姓氏 lastName endl; } else { cout 没有找到空格无法分割 endl; } return 0; } 终极关string 守护者综合 第 10 题密码检查员 #include iostream #include string using namespace std; int main() { string password; cout 请输入密码; getline(cin, password); if (password.length() 6 password.find(a) ! string::npos) { cout OK endl; } else { cout NO endl; } return 0; }✅小结讲解重点getline→ 整行输入length() size→ 字符串长度[]→ 访问字符for→ 遍历每个字符find()→ 查找字符或子串substr()→ 截取子串字符串大小写修改可以用循环 ASCII 运算注意边界判断 (empty(),npos)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询