Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*這個程式是我我熬夜打出來的
- 我這次特地在每一行旁邊打上這一行會做啥了 請大家自己研究
- 最後當然要記得把註解刪掉
- 也就是//後面跟前面這一段/*...文字
- 大家晚安~還有遲來的聖誕快樂
- 以上_______________匿名留XD */
- #include <iostream> //使用 cin cout 所需要的標頭黨
- #include <string.h> //使用 strlen 字串長度所需的標頭黨
- #include <cctype> //使用 isxxxx 判斷標點符號,數字,字母,空白所需要的標頭黨
- using namespace std; //使用 std namespace ((我們打的程式都要加
- int main() //進入主函式
- {
- int i ;
- char Q1[100]; //設立一個字串陣列 大小為100
- string Q = "Must you be so linear, Jean-Luc 0 123"; //老師規定未輸入時的預設字串
- cin.getline(Q1, 99); //擷取鍵入動作 也就是說跟 cin 一樣只是不用再一直按enter
- if(strlen(Q1) > 1) Q = Q1; //如果輸入為空白則用預設字串代替
- for(i=0; i<100; i++) //for 迴圈 直行至 字串長度 100
- {
- if (isdigit(Q[i])||ispunct(Q[i])) //判斷是否為數字與標點符號(依序)
- {
- continue; // 是 標點符號或數字 會啥都不做跳過 也就是說下面跳過 重新再跑一次for一次
- }
- if (isspace(Q[i])) //判斷是否為空格
- {
- if (isalpha(Q[i+1])) //判斷空格後是否為字母
- {
- cout<<endl; //是 則換行
- continue; //不輸出空格 也就是說下面跳過 重新再跑一次for一次
- }
- else
- continue; //否 代表後面是要忽略的或連續空格 不重複換行 也就是說下面跳過 重新再跑一次for一次
- }
- if (Q[i]=='\0') //判斷是否為字串結尾(字串結尾必有\0 除非長度超過100)
- {
- break; // 是則跳出for迴圈 *不會*在執行迴圈 也就是式都做完了 XDD
- }
- cout<<Q[i]; //以上判斷都不符合 也就是說這個字元 Q[i] 是我們要輸出的 ~輸出~
- }
- return 0; //最後主函式回傳值 我們不會用到(目前) 但是最後一定要加 (不一定要是"0" 其他東西也可以像"123" 之類的
- }
Advertisement
Add Comment
Please, Sign In to add comment