اذهب إلى المحتوى

السؤال

نشر (معدل)

س ( 4 ) : أكتب دالة بلغة السي أو السي بلس بلس اسمها ( int myStrLen ( char * s تقوم باحتساب و إرجاع عدد الحروف في السلسلة الحرفية و بدون استعمال أي من الدوال الجاهزة في string.h ثم قم باستدعاء الدالة في برنامج لاحتساب طول سلسلة تتم قراءتها من لوحة المفاتيح ثم طباعة طول هذه السلسلة الذي تقوم الدالة باحتسابه

تم التعديل في بواسطة Ali Haidar Ahmad
عنوان مناسب

Recommended Posts

  • 0
نشر
بتاريخ 1 دقيقة مضت قال Ali Haidar Ahmad:

حاول أن تحل السؤال بنفسك ونحن نساعدك ونصحح لك، لكننا لانقوم بحل الواجبات الدراسية.

انا حاولت واصلا هذا ليس واجب دراسي انا ادرس اللغة للتعلم

  • 0
نشر (معدل)

الإجابة بسيطة، تتطلب منك معرفة الأساسيات فقط. سأكتب لك كافة الطرق، وأنت نظمها وأكمل حسب المطلوب:
في لغة السي يمكنك إيجاد طول السلسلة بالشكل التالي:

#include <stdio.h>
#include <string.h>
int main()
{
    // نقوم بتعريف مصفوفة من المحارف لتخزين السلسلة الناتجة فيها
	char myStr[100];
    // تعريف متغير سنستخدمه داخل الحلقة
    // القيمة النهائية لهذا المتغير ستمثل طول السلسلة أيضاً
	int i;
	// لإدخال السلسلة scanf نستخدم الدالة 
	scanf("%s", myStr);
	// i نقوم بتعريف حلقة فارغة تقوم بزيادة قيمة المتغير
	// myStr وتتوقف عندما تجد المحرف الذي يدل على نهاية السلسلة في المصفوفة
    for (i = 0; myStr[i] != '\0'; ++i);
    // أخيراً نطبع طول السلسلة
	printf("Length of Str is %d", i);
	return 0;
}

لإيجاد طول سلسلة في c++ فالأمر مشابه لكن أبسط:

#include <iostream>
#include <string.h>
using namespace std;
int main()
{
    string str = "Hi";
	int i = 0;
	for (i = 0; str[i]; i++);
	cout << i << endl;
	return 0;
}

هناك دوال جاهزة أيضاً لإتمام الأمر مثل length و size، أعرف أنك لاتحتاج لطريقة جاهزة لكن سأضعها للآخرين:

#include <iostream>
using namespace std;
int main() {
    string str = "C++ Programming";
    // str.length() يمكنك أيضاً استخدام 
    cout << "String Length = " << str.size();
    return 0;
}

طريقة أخرى بأسلوب C-style من خلال استخدام الدالة strlen:

#include <iostream>
#include <cstring>
using namespace std;
int main() {
    char str[] = "C++ Programming";
    cout << "String Length = " << strlen(str);
    return 0;
}

 

تم التعديل في بواسطة Ali Haidar Ahmad

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...