伊莉討論區

標題: c++遇到空白跳行 Part2 [打印本頁]

作者: aa627097    時間: 2013-5-30 02:14 PM     標題: c++遇到空白跳行 Part2

本帖最後由 aa627097 於 2013-5-30 02:15 PM 編輯
  1. #include <iostream>
  2. using namespace std;
  3. int main()


  4. {
  5.     int i,j,len;
  6.     char A[20] = ""  ,D[20]="";
  7.     cout << "請輸入一組字" << endl;
  8.     gets(A);
  9.     //計算字串長度
  10.     for (i = 0; A[i] != '\0' ; i++);
  11.     cout << A << " 長度為: " << i << '\n';
  12.     len=i;
  13.     //字串拆解
  14.     i=0;
  15.     j=0;
  16.     while (i<len)
  17.     {
  18.         if (A[i]==' ')
  19.             A[i]='\n';
  20.         D[j]=A[i];
  21.         i++;
  22.         j++;
  23.     }
  24.     cout << D << "$" << endl;
  25.     system("pause");
  26. }
複製代碼

請問如果我要寫成函數的話該怎麼寫到外面去?


作者: johnwanz    時間: 2013-5-31 09:11 AM

簡單的拆解,就是有註解的地方。

在int main前面,可以直接加寫兩個函式,
處理註解寫到的動作。

如果不考慮耦合性的話,可以這樣寫,
  1. int GetStringLengthThenCOut(char A[])
  2. {
  3.     int i;
  4.     for (i = 0; A[i] != '\0' ; i++);
  5.     cout << A << " 長度為: " << i << '\n';

  6.     return i;
  7. }
複製代碼
  1. void ReplaceSpaceToNewLine(char A[], Len)
  2. {
  3.     int i, j;
  4.     char D[20]="";

  5.     i=0;
  6.     j=0;
  7.     while (i<Len)
  8.     {
  9.         if (A[i]==' ')
  10.             A[i]='\n';
  11.         D[j]=A[i];
  12.         i++;
  13.         j++;
  14.     }
  15.     cout << D << "$" << endl;
  16. }
複製代碼
main裡面,只要呼叫,並組織適當的順序即可。

ps. 沒有測試過,可能要確認一下內容。




歡迎光臨 伊莉討論區 (http://a401.file-static.com/) Powered by Discuz!