Реализовать функцию замены одного символа на другой в заданной строке - C++
Формулировка задачи:
Нужно написать функцию для замены символа 'о' на "аа" .
Не использовать стандартную библиотеку шаблонов, возвращаемое значение типа char* .
Задачка простая, интересуют только способы её решения. Свой вариант изложу вечером, т.к. С телефона.
Решение задачи: «Реализовать функцию замены одного символа на другой в заданной строке»
textual
Листинг программы
#include <iostream> using namespace std; char* myfunc(char* source) { int i(0); for (int k=1; source[k] != '\0'; k++) { i++; if (source[k] == 'o') i++; } char* outp = new char[i]; int k=0; for (int j=0; source[j] != '\0'; j++) if (source[j] != 'o') { outp[k] = source[j]; k++; } else { outp[k++] = 'a'; outp[k++] = 'a'; } outp[k]=0; // забыли терминальный ноль return outp; } int main() { char a[] = "Hello world!"; // a нежелательно делать указателем на константную строку char* s = myfunc(a); cout << s << endl; system("pause"); return 0; }
Объяснение кода листинга программы
- В функции myfunc() происходит замена всех символов 'o' на 'aa' в строке, которую она принимает в качестве аргумента.
- В начале функции определяется счетчик i, который инициализируется нулем.
- Далее, в цикле for, происходит проход по всем символам входной строки, начиная со второго символа (так как первый символ - это '\0').
- Если текущий символ равен 'o', то к счетчику i добавляется единица.
- После прохода по всем символам входной строки, в массиве outp формируется результат.
- В начале цикла for в функции main() создается массив outp, размером i, и в него записываются символы из строки a, за исключением 'o'.
- Если встречается символ 'o', то вместо него записываются два символа 'a'.
- В конце функции main() выводится результат замены на экран.
- Затем программа ожидает нажатия клавиши для продолжения работы.
- Функция myfunc() возвращает указатель на новую строку, которая содержит результат замены.
- Функция main() сохраняет этот указатель в переменной s.
- В массиве a содержится строка
Hello world!
. - Вместо символов 'o' в этой строке будут записаны символы 'aa'.
- Это произойдет только в том случае, если в массиве a есть символы 'o'.
- Если в массиве a нет символов 'o', то на экран будет выведена исходная строка.
- В конце программы вызывается функция system(), которая ожидает нажатия клавиши для продолжения работы.
- Возвращаемое значение функции system() игнорируется.
- Функция main() возвращает ноль, что означает успешный конец работы программы.
- В консоли появится сообщение
Press any key to continue...
. - Для продолжения работы программы необходимо нажать любую клавишу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д