Почему я не могу напрямую продублировать определенный символ строки C с помощью strcpy и вместо этого должен использовать вспомогательную строку? - PullRequest
0 голосов
/ 19 октября 2019

Я написал следующую программу для добавления символа '*' после каждого гласного в строке C

#include <iostream>
#include <string.h>
using namespace std;

int main()
{
char s[99];
cin.get(s, 99);

char aux[99];

for (int i = 0; i < strlen(s); i++)
    if(strchr("aeiou", s[i])){
        strcpy(aux, s + i);
        strcpy(s + i + 1, aux);

        s[i+1] = '*';
    }

cout << s;
return 0;
}

Так что, если я введу слово brain, оно выдаст bra*i*n, и оно отлично работаетхорошо. Однако, если я избавлюсь от этой строки 'aux' и вместо strcpy(aux, s + i); strcpy(s + i + 1, aux); я просто сделаю strcpy(s + i + 1, s + i);, моя программа перестает работать. (Бесконечный цикл, не возвращает 0). Почему это так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...