Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

تحديات برمجيةالتحدي الثالث - حل التمرين الأول بلغة C

المطلوب

قم بتعريف دالة إسمها CountWords, عند استدعاءها نمرر لها نص, فترجع عدد الكلمات الموجودة في هذا النص.
بعدها قم بتجربة هذه الدالة في البرنامج.

مثال: إذا قمنا باستخدام الدالة CountWords() و تمرير النص "Programming is easy to learn." فإنها سترجع الرقم 5.


الحل بلغة C

#include <stdio.h>
#include <string.h>
#define MAX_SIZE 1000

int countWords(char * s) {
    
    if (s[0] == '\0')
    {
        return 0;
    }
    
    int counter = 0;
    int length = strlen(s);
    
    char * newS = (char*) malloc ((length + 1) * sizeof(char));
    
    for (int i = 0; i < length; i++) {
        newS[i] = s[i];
    }
    
    newS[length] = ' ';
    newS[length + 1] = '\0';
    
    for (int i = 0; i < strlen(newS) - 1; i++)
    {
        if (newS[i] != ' ' && newS[i+1] == ' ')
        {
            counter++;
        }
    }
    
    return counter;
    
}


void main() {
    
    char * text = "Programming is easy to learn.";
    int numberOfWords = countWords(text);
    
    printf("Total words: %d", numberOfWords);

}

سنحصل على النتيجة التالية عند التشغيل.

Total words: 5