powerunlimited

1011工程程式設計-HW6

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