大文字と小文字を含むすべての英数字を反復処理する必要があり、それぞれに対してcryptコマンドを呼び出す必要があります。英数字で2文字の文字列を処理する方法
したがって、すべての可能な組み合わせまでAa、aA、1a、a1、1A、A1などをチェックし、crypt_crypt_fileという暗号を呼び出す必要があります。
効率的な方法はありますか?
ありがとうございました
大文字と小文字を含むすべての英数字を反復処理する必要があり、それぞれに対してcryptコマンドを呼び出す必要があります。英数字で2文字の文字列を処理する方法
したがって、すべての可能な組み合わせまでAa、aA、1a、a1、1A、A1などをチェックし、crypt_crypt_fileという暗号を呼び出す必要があります。
効率的な方法はありますか?
ありがとうございました
文字を配列に配置できます。ような何か:
const char vals[] = { '0', '1', '2', ..., 'a', 'b', ... 'Z' }; // Probably better to generate it programatically
ループがそれを行う必要があります「の」ダブル:
int i;
for (i = 0; i < kNumVals; i++) // kNumVals is the number of characters in your array
{
int j;
for (j = 0; j < kNumVals; j++)
{
char myString[3] = {vals[i],vals[j],'\0'};
// Do something with myString
}
}
ありがとうございました..それは役に立ちました:) – Shwethascar
最も効率的な方法は、一度すべての組み合わせを生成し、ファイルに格納されるだろう。組み合わせが変わらないので、ファイルを読んでください。
文字列の文字列を「aA1」と入力します。このあなたが62個の文字を使用しているなどaA1,1Aaのようにすべての可能な組み合わせのために
#include<stdio.h>
#include<string.h>
#include<alloc.h>
#include<conio.h>
void swap(char*,int);
void gotoloop(char*,int);
void main()
{
char *ch;
int i,j,k,l;
ch=(char*)malloc(20);
//clrscr();
printf("Enter the string\n"); //Enter AAaa11 for your case
gets(ch);
l=strlen(ch);
gotoloop(ch,l);
//if flag !=false call encryption.
return;
}
void gotoloop(char *ch,int l)
{
int i,k;
k=l;
if(l<=1)
return;
for(i=0;i<k;i++)
{
swap(ch,k);
l--;
gotoloop(ch,l);
l++;
if(k==2) {
printf("\n%s ",ch);//check this from the list, if not found set FLAG=false
}
}
}
void swap(char *ch,int r)
{
char c;
int i;
c=ch[r-1];
for(i=r-1;i>0;i--)
ch[i]=ch[i-1];
ch[0]=c;
}
をチェックすることです:= 62 0-9、AZ、AZ 10 + 26 + 26あなたはからすべての可能な2つの文字の組み合わせをしたいです00〜zz。 0から3843までのすべての数字を介し
0 -> 00
1 -> 01
10 -> 0A
61 -> 0z
62 -> 10
ゴー(62^2 1 - )と2桁の数字に変換ベースで62
このベース62における2桁の数字と考えますサイトでは、プログラミングをしている人や、立ち往生している人を支援しています。あなたがこれまでに試したことを私たちに教えてください。また、あなたの質問を明確にするために、「私はチェックする必要があります...」と答える必要があります。何を確認しますか?サンプルの入力、期待される出力、実際の出力とコードは、人々が助けることができる質問をより良い形にします。がんばろう。 – shellter
あなたは何をしようとしているかについて、例を挙げてより具体的にする必要があります。 – jkysam