Обратите внимание, что вы устанавливаете каждый индекс в mes
на '\0'
, или NUL
. Когда вы просматриваете tem
, проверяя, является ли каждый символ буквой, вы случайно отделяете слова на \0
внутри mes
. Вам нужно иметь отдельный указатель, который позволит вам добавлять буквы, когда вы их найдете.
Ваш for
цикл может выглядеть следующим образом.
int currentIndex = 0;
for (int i = 0; i < 50; i++){
char c = tem[i];
int ch = (int)c;
if(( ch >= 65 && ch <= 90) || ( ch >= 97 && ch <= 122)){
if( ch >= 65 && ch <= 90)
ch+=32;
mes[currentIndex++]=(char)ch;
}
else
continue;
}
Таким образом, вы будете добавлять письмо сразу после следующего, а не что-то вроде Hello\0World
.
Также помните, что cout
будет печатать только строки, пока не найдет символ \0
. Технически вы храните все буквы, которые вы найдете в предложении, но они разделены \0
, и поэтому cout
печатает только первое слово.