【C++】程式碼和解釋 — 檢測該字串是否為迴圈
“ 重新梳理整個思路 ”
分享完整連結 //n.sfs.tw/m10681
分享連結 【C++】程式碼和解釋 — 檢測該字串是否為迴圈 @精讚(文章歡迎轉載,請尊重版權註明連結來源)
2020-11-20 17:27:09 By 過路君子
#include<iostream> //導入iostream這個工具 #define UNI 5000 //定義值為5000的變數UNI using namespace std; //使用std命名空間 void filter(char x[UNI]) //建立名為filter的類別,其需餵入字元陣列 { char a[UNI]; //定義變數a為字元陣列,長度5000 int b, c=0; //定義變數b, c為整數,其c初始值為零 for(int d=0;x[d]!='\0';d++) //此迴圈會把餵入字元陣列每一個都讀一遍 { b = (int) x[d]; //將x的第d+1個字元強制轉換成整數儲存在b裡面 if(64<b && b<91) a[c] = (char) b, c++; //如果b的數值落在65~90之間(即字元為'A'~'Z')則a的第c+1個字元設成強制轉換成字元型態的b且c的數值+1 else if(96<b && b<123) //若b的數值落在97~122之間(即字元為'a'~'z') { b -= 32; //將b的值減去32之後存回 a[c] = (char) b; //將a的第c+1個字元設成強制轉換成字元型態的b c++; //c的數值+1 } else //若都不是 { x[d] = '\0'; //則將目前讀取的字元清空 continue; //結束執行這次迴圈,開始下一回圈 } x[d] = '\0'; //清空目前讀取的字元 } for(int d=0;a[d]!='\0';d++) x[d] = a[d]; //將a字元陣列的值複製到x字元陣列 } bool comparison(char x[UNI]) //建立名為comparison的區塊,其需餵入字元陣列,但返回布林值 { char a[UNI]; //定義變數a為字元陣列,長度5000 int b, e; //定義變數b, e為整數 for(b=0;;b++) if(x[b]=='\0') break; //偵測餵入的字元陣列長度 e = b; //將e的值設成b b--; //b的值-1 for(int c=0;x[c]!='0';c++) //此迴圈會把餵入字元陣列每一個都讀一遍 { a[b] = x[c]; //將a字元陣列最末端的值設成x字元陣列的第c+1個字元 b--; //b的值-1 } //此時a字元陣列等於x字元陣列倒過來的樣子 for(b=0;x[b]!='\0';b++) if(a[b] != x[b]) break; //偵測a陣列是否與x陣列相同 if(e==b) return true; //如果a陣列和x陣列相等,則返回true值(1) else return false; //否則返回false值(0) } int main(void) //主程式 { char a[UNI]; //定義變數a為字元陣列,長度5000 bool b; //定義變數b為布林值 while(cin >> a) //直到EOF前持續讀取資料並存入變數a { filter(a); //給入a值並執行filter類別 b = comparison(a); //將b值設成從comparison所返回的true或false值 if(b) cout << "yes\n"; //若b值為1則輸出yes else cout << "no\n"; //否則輸出no } }
相關連結
http://n.sfs.tw/content/index/14818
END
你可能有興趣
【投票結果】第15回 東方Project 人氣投票
第15回的投票也漂亮的落幕了~
【Java】<JAVA_HOME>/lib/ext exists, extensions mechanism no longer supported;Use -classpath instead
執行JAVA的時候遇上該奇怪的錯誤
【CentOS 8】 防火牆基本操作
因為常用怕忘記,所以在這裡放一份來記憶。
【C++】程式碼和解釋 — 檢測該字串是否為迴圈
重新梳理整個思路
【地下城物語】在諸神的棋牌裡面發現了鑽石棋子?!
聽說鑽石棋子很難刷出來?!
【阿瑞斯病毒】中文Wiki網站
一個可以大家共同編輯的頁面,只可惜目前還沒有很多人編輯