-4
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
void shiftLeft (char myarray[], int size, int shiftBy)
{
if(shiftBy > size){
shiftBy = shiftBy - size;
}
if(size == 1){
//do nothing
}
else{
char temp;
//for loop to print the array with indexes moved up (to the left) <-- by 2
for (int i=0; i < size-shiftBy; i++)
{//EXAMPLE shift by 3 for a c-string of 5
temp = myarray[i];//temp = myarray[0]
myarray[i] = myarray[i + shiftBy];//myarray[0] == myarray[2]
myarray[i + shiftBy] = temp;//myarray[2] = temp(value previously at index i)
}
}
}
int main()
{
char text[] = "OPAKMIGWPKBTWAQSZQABTAVWASZGETAATGCEWQEAVFZMHATXSOQLPAMOTZMIATXFWFKMQEMELWBHQZYPQJMFGEMLKTZQEOWAVARATXMXIABTKVAOUKDQFLTQZWDKMYMAFLPUFSULYGWMDLWELWBOQFZWGLIRSZYZWGKMZWIDTMFOMQFBTWEAGLESVPXZARMZDIWWBTWLMJSQKBQNMZAVSGNFZMKWIDZMSADQKPUKPMJVQKANWTXKIEZIWWBASAWANFZMDWQEKWYWUUKBMCMFZMAFTKGBTWZEGCZVAFZMEOMQHWRWIEQEUFLMFLPGEZQNXSSQLPQOWAVAMJMXGDQDGPSZWSVPVMQHJGLQTSDQHZAEQEWAFGSQWXMFLYATQKBAYWNWNAJMUKTQWXMFLYATQKBAYWNWNAJMUKTQWX" ;
char textTwo[] = "OPAKMIGWPKBTWAQSZQABTAVWASZGETAATGCEWQEAVFZMHATXSOQLPAMOTZMIATXFWFKMQEMELWBHQZYPQJMFGEMLKTZQEOWAVARATXMXIABTKVAOUKDQFLTQZWDKMYMAFLPUFSULYGWMDLWELWBOQFZWGLIRSZYZWGKMZWIDTMFOMQFBTWEAGLESVPXZARMZDIWWBTWLMJSQKBQNMZAVSGNFZMKWIDZMSADQKPUKPMJVQKANWTXKIEZIWWBASAWANFZMDWQEKWYWUUKBMCMFZMAFTKGBTWZEGCZVAFZMEOMQHWRWIEQEUFLMFLPGEZQNXSSQLPQOWAVAMJMXGDQDGPSZWSVPVMQHJGLQTSDQHZAEQEWAFGSQWXMFLYATQKBAYWNWNAJMUKTQWXMFLYATQKBAYWNWNAJMUKTQWX";
string OG="OPAKMIGWPKBTWAQSZQABTAVWASZGETAATGCEWQEAVFZMHATXSOQLPAMOTZMIATXFWFKMQEMELWBHQZYPQJMFGEMLKTZQEOWAVARATXMXIABTKVAOUKDQFLTQZWDKMYMAFLPUFSULYGWMDLWELWBOQFZWGLIRSZYZWGKMZWIDTMFOMQFBTWEAGLESVPXZARMZDIWWBTWLMJSQKBQNMZAVSGNFZMKWIDZMSADQKPUKPMJVQKANWTXKIEZIWWBASAWANFZMDWQEKWYWUUKBMCMFZMAFTKGBTWZEGCZVAFZMEOMQHWRWIEQEUFLMFLPGEZQNXSSQLPQOWAVAMJMXGDQDGPSZWSVPVMQHJGLQTSDQHZAEQEWAFGSQWXMFLYATQKBAYWNWNAJMUKTQWXMFLYATQKBAYWNWNAJMUKTQWX";
int size =OG.length();
int count = 0;
ofstream outputFile("info.txt");
for (int i =1; i<size+1;i++){
shiftLeft(text,size,i);
string name="OPAKMIGWPKBTWAQSZQABTAVWASZGETAATGCEWQEAVFZMHATXSOQLPAMOTZMIATXFWFKMQEMELWBHQZYPQJMFGEMLKTZQEOWAVARATXMXIABTKVAOUKDQFLTQZWDKMYMAFLPUFSULYGWMDLWELWBOQFZWGLIRSZYZWGKMZWIDTMFOMQFBTWEAGLESVPXZARMZDIWWBTWLMJSQKBQNMZAVSGNFZMKWIDZMSADQKPUKPMJVQKANWTXKIEZIWWBASAWANFZMDWQEKWYWUUKBMCMFZMAFTKGBTWZEGCZVAFZMEOMQHWRWIEQEUFLMFLPGEZQNXSSQLPQOWAVAMJMXGDQDGPSZWSVPVMQHJGLQTSDQHZAEQEWAFGSQWXMFLYATQKBAYWNWNAJMUKTQWXMFLYATQKBAYWNWNAJMUKTQWX";
for(int j=0;j<size;j++){
if(text[j]==textTwo[j])
count++;
}
outputFile <<"Shift right by: " << 422-i << " Coincidences: " << count <<"text:" <<text <<endl;
strcpy_s(text, name.c_str());
count = 0;
}
outputFile.close();
return 0;
}
我的目標是在這裏破解Vigen`ere密碼,但我需要做以下operrationg從0開始的位轉移到文本的大小,並檢查轉移和原文本匹配起來,他們匹配的最大值給我的鑰匙空間,但我的代碼不工作正確的,左移似乎沒有工作,但我對小本投入測試,它適用於小本投入很好..移通過留下一個數組withh給定值
_「我不知道我的錯誤在哪裏......」_實際上有什麼問題?編譯器錯誤?運行時錯誤?意外的輸出? – user0042
再次檢查desc,我添加了更多詳細信息 –
沒有足夠的細節。提供一個[MCVE],在用調試器逐步執行代碼時顯示您的觀察結果。 – user0042