الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لدي برنامج تشفير وأواجه مشكلة بسيطة في المصفوفات

بدأه Prof.Nawaf في 18 يوليو 2008 · 9 رد · 882 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
char Text[16]="";
char enc[16]="";
char tran[16]="";
int numb[16];
int i=0;
int n1=0;
int res=0;
int len=0;

int na=0;

printf("Enter The Text Ur Want To Encrypt it:\n");
scanf("%s",Text);
len=strlen(Text);
for(i=0;i<=len;i++)
{
switch (Text)
{
case 'A':
n1=1;
break;
case 'B':
n1=2;
break;
case 'C':
n1=3;
break;
case 'D':
n1=4;
break;
case 'E':
n1=5;
break;
case 'F':
n1=6;
break;
case 'G':
n1=7;
break;
case 'H':
n1=8;
break;
case 'I':
n1=9;
break;
case 'G':
n1=10;
break;
case 'K':
n1=11;
break;
case 'L':
n1=12;
break;
case 'M':
n1=13;
break;
case 'N':
n1=14;
break;
case 'O':
n1=15;
break;
case 'P':
n1=16;
break;
case 'Q':
n1=17;
break;
case 'R':
n1=18;
break;
case 'S':
n1=19;
break;
case 'T':
n1=20;
break;
case 'U':
n1=21;
break;
case 'V':
n1=22;
break;
case 'W':
n1=23;
break;
case 'X':
n1=24;
break;
case 'Y':
n1=25;
break;
case 'Z':
n1=26;
break;
}
res=n1-1;
numb=res;
switch (numb)
{
case 0:
strcat(enc,"Z");
break;
case 1:
strcat(enc,"A");
break;
case 2:
strcat(enc,"B");
break;
case 3:
strcat(enc,"C");
break;
case 4:
strcat(enc,"D");
break;
case 5:
strcat(enc,"E");
break;
case 6:
strcat(enc,"F");
break;
case 7:
strcat(enc,"G");
break;
case 8:
strcat(enc,"H");
break;
case 9:
strcat(enc,"I");
break;
case 10:
strcat(enc,"G");
break;
case 11:
strcat(enc,"K");
break;
case 12:
strcat(enc,"L");
break;
case 13:
strcat(enc,"M");
break;
case 14:
strcat(enc,"N");
break;
case 15:
strcat(enc,"O");
break;
case 16:
strcat(enc,"P");
break;
case 17:
strcat(enc,"Q");
break;
case 18:
strcat(enc,"R");
break;
case 19:
strcat(enc,"S");
break;
case 20:
strcat(enc,"T");
break;
case 21:
strcat(enc,"U");
break;
case 22:
strcat(enc,"V");
break;
case 23:
strcat(enc,"W");
break;
case 24:
strcat(enc,"X");
break;
case 25:
strcat(enc,"Y");
break;
}
}

strcpy(tran,enc,i);
printf("%s.\n",ad);
return 0;
}

البرنامج بالسي .. يعتمد في تشفيره على خوارزمية معينة ..

بحيث أنك إذا أدخلت الحروف

BCD

فسوف يخرجها لك بالشكل

ABC

.. توجد لدي بعض المشاكل ... ماذا سأعمل لو كان هناك مسافة (أي كلمتين) .. ثانيا .. لا أدري لماذا لا يشفر ويحول أكثر من 3 حروف بالشكل الصحيح..

هل هناك نصيحة لكم لي تساعدني ؟؟

تحيتي لكم .. نواف ,,,

تم تعديل هذه المشاركة بواسطة Prof.Nawaf في 18 يوليو 2008 في 20:21

#2

ألا يمكن اختصار الكود الى هذا :

[color= #007f00;]#include <stdio.h>

[color= #007f00;]#include <math.h>

[color= #007f00;]#include <string.h>

 

[color= #0000ff;]int main[color= #000000;]([color= #000000;])

[color= #000000;]{

	[color= #0000ff;]char Text[color= #000000;][[color= #ff0000;]16[color= #000000;]][color= #000000;]=[color= #A31515;]"";

	[color= #0000ff;]char enc[color= #000000;][[color= #ff0000;]16[color= #000000;]][color= #000000;]=[color= #A31515;]"";

	[color= #0000ff;]int i [color= #000000;]= [color= #ff0000;]0, k [color= #000000;]= [color= #ff0000;]0;

 

	printf[color= #000000;]([color= #A31515;]"Enter The Text Ur Want To Encrypt it: n"[color= #000000;]);

	scanf[color= #000000;]([color= #A31515;]"%s",Text[color= #000000;]);

	Text[color= #000000;][[color= #ff0000;]15[color= #000000;]] [color= #000000;]= [color= #ff0000;]0;

	[color= #0000ff;]while [color= #000000;](Text[color= #000000;][i[color= #000000;]][color= #000000;])

		enc[color= #000000;][i[color= #000000;]] [color= #000000;]= Text[color= #000000;][i[color= #000000;]++[color= #000000;]] [color= #000000;]- [color= #ff0000;]1;

	printf[color= #000000;]([color= #A31515;]"%s n",enc[color= #000000;]);

	system[color= #000000;]([color= #A31515;]"PAUSE"[color= #000000;]);

	[color= #0000ff;]return [color= #ff0000;]0;

[color= #000000;]};

طبعاّ الكود غير امن اطلاقاً .

تم تعديل هذه المشاركة بواسطة GamingMasteR في 18 يوليو 2008 في 21:00

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#3

تستطيع وضع رمز معين يدل على المسافة ، مثلا عندما تكون هناك مسافة استخدم الرمز # :

  1.  
  2. if ( x ==' ' )
  3. return '#'
  4.  
  5.  

#4

q52zngkb02o7.jpg

كيف أتغلب على مشكلة المسافة والتي تنتج لي بعد تشفيرها رمزا غريبا ..

؟؟ :wacko:

نواف ,,,

#5

لا مشكلة ,, استبدل هذه :

while (Text)
	enc = Text[i++] - 1;

بالآتي :

do
{
	if (Text != ' ')
		enc = Text - 1;
} while (Text[++i]);

تم تعديل هذه المشاركة بواسطة GamingMasteR في 20 يوليو 2008 في 16:40

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#6

هناك خطأ بالكود ,, اجعل عداد الـenc منفصل !!

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#7

أشكرك أخي على تفاعلك معي .. لكن أين أضع العداد الذي تقصده وكيف

نواف ,,,

#8

في ال switch اضف case للمسافة ، هل هناك مشكلة في ذلك ؟

case ' ':
something
break;
#9
int k = 0;
do
{
	if (Text != ' ')
		enc[k++] = Text - 1;
} while (Text[++i]);

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#10

يمكنك استخدام هذا أيضا ,, اذا كنت ترغب ببقاء المسافات :

[color= #0000ff;]do

[color= #000000;]{

    [color= #0000ff;]if [color= #000000;](Text[color= #000000;][i[color= #000000;]] [color= #000000;]![color= #000000;]= [color= #A31515;]' '[color= #000000;])

        enc[color= #000000;][i[color= #000000;]] [color= #000000;]= Text[color= #000000;][i[color= #000000;]] [color= #000000;]- [color= #ff0000;]1;

    [color= #0000ff;]else

        enc[color= #000000;][i[color= #000000;]] [color= #000000;]= [color= #A31515;]' ';

[color= #000000;]} [color= #0000ff;]while [color= #000000;](Text[color= #000000;][[color= #000000;]++i[color= #000000;]][color= #000000;]);

تم تعديل هذه المشاركة بواسطة GamingMasteR في 22 يوليو 2008 في 20:47

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…