1. 程式人生 > >C++ 插入加密

C++ 插入加密

是一個課程作業,寫的挺糾結,記錄一下。

一開始用字元陣列寫,走了很多彎路,當然這過程中也進一步理解了一下字元陣列。靜態陣列不能直接插入,要操作就要複製到另一個數組裡,下標就很多很混亂。

後來才想到用應該用 string 寫,string 直接用 insert 下標插入不要太簡單。

當然不管是字元陣列還是 string,都要注意 ‘\0’ 的問題。

最後陣列的程式碼就不貼了,100來行,雖然功能實現了,我以後都不想再看見,太蠢了。

用 string 只寫了30來行, 對比慘烈。

#include <iostream> #include <string> using namespace std; int main() {     string str, result;     string a, b;     char A[5] = {'a', 'b', 'c', 'd', 'e'}; //加密用的其他字元,迴圈用     int n;     int len;     int i, j;         cin>>str;     cin>>n;          len = str.length();         result = str;//先複製過來,再插入          for(i=0,j=n; i<len/n; i++,j++)     {         a = A[i%5];         result.insert(n*i+j, a);     }     if(len%n!=0)//題目要求最後一個必須是其他字元     {         b = A[i%5];         result.insert(result.length(), b);     }

    cout<<result<<endl;

    return 0; }

最後再囉嗦一下,string 系統會自動新增 ‘\0’, 複製插入的話不用擔心丟掉問題。如果用字元陣列,一定要注意 ‘\0’ 的問題,因為陣列初始化的時候可能沒有 ‘\0’。