السلام عليكــم ورحمـة الله وبركاتــه ،،
أريد دالة لمعرفة ترتيب الحرف الأبجدي.....
مثلا..
ترتيب a 1
b 2
وهكذا...........
السلام عليكــم ورحمـة الله وبركاتــه ،،
أريد دالة لمعرفة ترتيب الحرف الأبجدي.....
مثلا..
ترتيب a 1
b 2
وهكذا...........
جرب هذا الكود :
#include <ctype.h>
/*
تقوم هذه الدالة بحساب مرتبة حرف اسكي
Case insensitive...
*/
int GetCharRank(const char c)
{
if(isalpha(c)) { // يجب أن يكون حرفا لاغير
char cc = tolower(c); // Case insensitive
return (int)cc - 'a' + 1; // الرتبة ابتداءا من 1
}
return -1; // في حالة الخطأ المرتبة تكون تحت الصفر
}
void main(void)
{
int i = GetCharRank('a'); // 1
i = GetCharRank('A'); // 1 Case insensitive
i = GetCharRank('z'); // 26
i = GetCharRank('1'); // -1 في حالة الخطأ
}تم تعديل هذه المشاركة بواسطة محمد رضى في 5 يوليو 2009 في 22:47
سهلة اخوي,,
اتفضل
#include <stdio.h>
#include <conio.h>
int main() {
char c;
scanf("%c", &c);
if( c >= 'a' && c<= 'z' )
printf("%d", (int)c - 'a' + 1);
else if( c >= 'A' && c <= 'Z' )
printf("%d", (int)c - 'A' + 1);
getch();
return 0;
}تم تعديل هذه المشاركة بواسطة MoHammaD_93 في 5 يوليو 2009 في 23:20
SAFETY TIP : Always delete what you new, and free what you malloc, never mix new with free or malloc with delete.
شكراً جزيلاً أخي الكريم
تقريبا وصلت للحل
بس أنا قصدي دالة تستقبل متغير نصي و ترجع برقمه
مثلاً
cin >> c ;
return 3 ;
قمت بتعديل مشاركتي السابقة,,
تحياتي
SAFETY TIP : Always delete what you new, and free what you malloc, never mix new with free or malloc with delete.
مشكوور جدا ....
هذا هو المطلووب
بس ممكن شرح للدالتين
scanf
getch();
بعد ازنك
scanf دالة قياسية تقوم بإستقبال المدخلات عن طريق مسار الدخل القياسي (الكيبورد)
لمعرفية كيفية التعامل معها,,, تفضل: http://www.cplusplus.com/reference/clibrary/cstdio/scanf/
getch هذه الدالة معرفة في conio.h
تقوم بإنتظار إدخال حرف من الكيبورد
قمت بإستخدامها حتى لا تختفي شاشة الكونسول, لترى النتائج,, حاول إزالتها من البرنامج ولاحظ الفرق
تحياتي
SAFETY TIP : Always delete what you new, and free what you malloc, never mix new with free or malloc with delete.
جرب هذه
[color= #007f00;]#include <iostream>
[color= #0000ff;]using [color= #0000ff;]namespace std;
[color= #0000ff;]inline [color= #0000ff;]int getindex[color= #000000;]([color= #0000ff;]char c[color= #000000;]);
[color= #0000ff;]void main[color= #000000;]([color= #000000;])
[color= #000000;]{
[color= #0000ff;]char x;
cout [color= #000000;]<< [color= #A31515;]"type character: ";
cin [color= #000000;]>> x;
cout [color= #000000;]<< [color= #A31515;]"character index is : " [color= #000000;]<< getindex[color= #000000;](x[color= #000000;]) [color= #000000;]<< endl;
[color= #000000;]}
[color= #0000ff;]inline [color= #0000ff;]int getindex[color= #000000;]([color= #0000ff;]char c[color= #000000;])
[color= #000000;]{
[color= #0000ff;]return [color= #000000;](c [color= #000000;]>= [color= #A31515;]'a' ? c [color= #000000;]- [color= #A31515;]'a' [color= #000000;]: c [color= #000000;]- [color= #A31515;]'A'[color= #000000;]) [color= #000000;]+ [color= #ff0000;]1;
[color= #000000;]}لاحظ ان هذه الداله تتعامل مع الحروف فقط
و الله ولى التوفيق
مدونتي: C++ Tips and Tricks