Virtual-Assistant icon indicating copy to clipboard operation
Virtual-Assistant copied to clipboard

Does the strlen function need to be recalculated every round of the for loop?

Open Mserhatarslan opened this issue 1 year ago • 1 comments

strlen(example) function is called in each iteration of the loop to determine the length of the string example. However, calculating the length of the string repeatedly in each iteration can be inefficient, especially if the length remains constant throughout the loop.

Virtual-Assistant/analysis.c

for (int iter_char = 0; iter_char < strlen(example); iter_char++) {

int len = strlen(example);

for (int iter_char = 0; iter_char < len; iter_char++) {
    example[iter_char] = tolower(example[iter_char]);
    if (example[iter_char] == ' ') {
        if (example[iter_char + 1] != ' ') {
            split[word][character] = '\0';
            character = 0;
            word++;
        }
        continue;
    } else {
        split[word][character++] = example[iter_char];
    }
}

By calculating the length of the string outside the loop and storing it in the variable len, you avoid the overhead of recomputing the length in each iteration. This can lead to a significant improvement in performance, especially for long strings.

Mserhatarslan avatar Feb 01 '24 08:02 Mserhatarslan