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

مؤشر على سلسلة حرفية في لغة السي ؟؟

بدأه josen في 26 نوفمبر 2008 · 1 رد · 536 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلامات للجميع

مشكلتي مع المؤشرات في لغة السي عند التعامل مع سلاسل الحروف

فإذا أخذنا بعين الإعتبار فهمي البسيط للمؤشرات على الشكل الذي

int x=3;

int *px;

px=&x;

printf(" x =%d ",x) ;

printf("\n *px =%d ",*px);

printf("\n &x =%p ",&x) ;

printf("\n px =%p ",px);

فإنني الآن أواجه مشكلة مع السلاسل الحرفية من النوع

char s[20];

printf(" s = ");

gets(s);

printf("%s",s);

كيف سأتعامل الآن مع السلسلة وفقا للمشاكل التالية

أولا: محاولة عكس قيم السلسلة الحرفية بواسطة مؤشر

ثانيا : محاولة نسخ السلسلة الحرفية الى أخرى بواسطة مؤشر

ثالثا : محاولة التحويل الى حروف كبيرة و صغيرة بواسطة مؤشر

الرجاء مساعدتي ، فأنا في عداد المبتدئين باللغة و مهتم جدا بالمسألة

شكراااااااااا

post-176768-1227706692_thumb.jpg

post-176768-1227706731_thumb.jpg

#2

/*أولا: محاولة عكس قيم السلسلة الحرفية بواسطة مؤشر*/

  1.  
  2. #include<stdio.h>
  3. #include<ctype.h>
  4.  
  5. int main()
  6. {
  7.  
  8. char s[20];
  9. char* ptr_begin;
  10. char* ptr_end;
  11.  
  12. printf(" s = ");
  13. memset(s,'\0',20);// تنظيف الاماكن المحجوزة
  14. gets(s);
  15.  
  16.  
  17.  
  18. ptr_begin=s; //بداية المصفوفة
  19. ptr_end=&s[20];// نهاية المصفوفة
  20.  
  21. while(ptr_end-- !=ptr_begin)
  22. {
  23. if(*ptr_end!='\0')
  24. printf("%c",*ptr_end);
  25. }
  26. return 0;
  27. }
  28.  
  29.  

ثانيا : محاولة نسخ السلسلة الحرفية الى أخرى بواسطة مؤشر

  1. #include<stdio.h>
  2. #include<ctype.h>
  3.  
  4. int main()
  5. {
  6.  
  7. char s[20];
  8. char d[20];
  9. char* ptr_begin;
  10. int n=0;
  11.  
  12. printf(" s = ");
  13. gets(s);
  14.  
  15.  
  16.  
  17. ptr_begin=s; //بداية المصفوفة
  18.  
  19.  
  20.  
  21. while(*ptr_begin!='\0')
  22. {
  23.  
  24. d[n++]=*ptr_begin++; //حرف حرف
  25.  
  26. }
  27. d[n]='\0'; //أغلاق نهاية النص
  28. printf("%sn",d);
  29.  
  30.  
  31. return 0;
  32. }
  33.  
  34.  

ثالثا : محاولة التحويل الى حروف كبيرة و صغيرة بواسطة مؤشر

  1. #include<stdio.h>
  2. #include<ctype.h>
  3.  
  4. int main()
  5. {
  6.  
  7. char s[20];
  8. char* ptr_begin;
  9. printf(" s = ");
  10. gets(s);
  11.  
  12. ptr_begin=s; //بداية المصفوفة
  13.  
  14. while(*ptr_begin!='\0')
  15. {
  16. if(islower(*ptr_begin))
  17. *ptr_begin=toupper(*ptr_begin);
  18. else if(isupper(*ptr_begin))
  19. *ptr_begin=tolower(*ptr_begin);
  20.  
  21. printf("%c",*ptr_begin++);
  22. }
  23. return 0;
  24. }
  25.  
  26.  

تم تعديل هذه المشاركة بواسطة time1 في 27 نوفمبر 2008 في 15:22

tvquran_6.gif

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