Не понимаю, как работает функция memmov
В универе задача: ввести с клавиатуры строку символов и удалить из строки все слова начинающиеся на гласную букву.
Нашёл код решения задачи в интернете:
#include<iostream>
#include<string>
using namespace std;
void DeleteVowels(char words[]);
int main()
{
char words[255];
gets(words);
DeleteVowels(words);
cout << "Line view after deleting words:\n";
puts(words);
return 0;
}
void DeleteVowels(char words[])
{
char vowels[13] = "AaEeIiOoUuYy";
int counter = 0, i = 0, j = 0;
int startwords, endwords;
int len = strlen(words);
for (i = 0; words[i];)
{
while (words[i] == ' ') i++;
startwords = i;
while (words[i] != ' ' && words[i] != '\0') i++;
while (words[i] == ' ') i++;
endwords = i;
for (j = 0; vowels[j]; j++)
{
if (words[startwords] == vowels[j])
{
memmove(&words[startwords], &words[endwords], len - endwords + 1);
i -= endwords - startwords;
len -= endwords - startwords;
break;
}
}
}
}
Вообще не понимаю как работает вот этот кусок кода:
memmove(&words[startwords], &words[endwords], len - endwords + 1);
i -= endwords - startwords;
len -= endwords - startwords;
break;
}
Дайте, пожалуйста, развёрнутый комментарий.