[Предложение] алгоритм, чтобы доказать, проблемы безопасности 05. заменить пространство (C ++)

Пожалуйста, реализовать функцию, заменить каждый пробел в строку с до «20%».

[ Пример 1 ]

Входные данные : S = "Мы счастливы. "
Вывод: "Мы% 20are% 20happy. "

[ Предел ]

Длина 0 <= х <= 10000

 

[Проблемные идеи]

класс решений {
общественности:
  строка replaceSpace (строка s) {
    строка s2;
      для авто (с: с) {
      если (! s [я] =»«)
        s2 + = s [я];
      остальное
        s2 + = "% 20";
    }
    Вернуться с2;
  }
};

[ Примечание]

1. C ++ сингл и двойные кавычки проблема.

Это одна кавычка, двойные кавычки строка
из одного символа в кавычках на самом деле представляет собой целое число.
Строка , заключенная в двойных кавычках, он является представителем указателя на массив неизвестного стартового символа. Массив двойной кавычки между символами и дополнительный двоичный ноль «\ 0» инициализации.

разница между «а» и «а», бывшей является строкой , которая является символом.
На самом деле «а» это «\ 0», то «\ 0» конец. «А» это само по себе представляет символ.
Строка может быть «ABCDE» сочетание таких представляют несколько символов, а «ABCDE» это неправильно! ! !

Таким образом, как правило, одна строка символов в сочетании с символами, множество символов ~

2. О для авто (с: с) формулировку.

С11 стандарт специальный формат может выполняться в цикле, за исключением того, что ссылка типа может быть изменено на исходное значение

-------------------------------------------------- ------------
Auto: используется для объявления автоматической переменной. Это идентификатор типа для хранения, что переменные (авто) , имеющие локальную область видимости, диапазон блок объявления переменного (например, для объявления переменного тела цикла) является типом автоматического хранения по умолчанию. На самом деле, большинство обычного декларативное переменное заявления являются авто переменных, они не должен явно указать автоматическое ключевое слово, по умолчанию является автоматическим. авто переменные из области видимости автоматически становится отпущена, переполнение памяти (кроме класса содержит указатель) не происходит. Преимущество использования авто переменных не является необходимым рассмотреть вопрос о том , чтобы идти переменное отпускание относительно безопасного.
новое: новое ключевое слово используется в адресе памяти приложения кучи, он создал переменную не происходит автоматически, если удаления выпуска вручную, или в конце программы, освобождаясь операционной системы, преимущества использования нового использования памяти является более гибким, теория может применяться для любого блока размера памяти , когда (фактическая зависят от операционной системы), но он склонен к проблемам, случайно забыв освободить объект, объект особенно часто при вызове функции созданных забыв отпустить, он будет производить переполнение памяти , что приводит к серьезной ошибке программы, сбой системы. новые , как правило , используется в определении класса, комбинация может удалить класс содержит новые объекты из поставляется с переменной функцией, таким образом , унаследовал преимущества обоих подходов.
-------------------------------------------------- ------------
Кроме того, последняя C ++ стандартные функции автоматического обновления ключей в дополнение к первоначальному смыслу, но и добавляет высокоуровневый язык похож на другой тип не использовать авто вывести свойства Вместо типа переменной, помещение инициализируется явно инициализированы тип переменной, вы можете использовать автоматическое ключевое слово , например , как межд я = 10; авто а = я; // это типа INT в использовании некоторых из этого шаблона класса, уменьшить многословный код также полезен
-------------------------------------------------- -------------
другого экскурс: автоматическая соответствующий типа вместо того , чтобы использовать новые из переменных, ни статических переменных
статических переменной конец программы , когда она освобождает объект, но он не требует ручного релиз.
Когда статический , если объявленный в функции, каждый раз , когда он вошел в эту функцию, или использование переменной первого объявлена, а также значение последнего используется спасена.
Если вы используете статические переменные и структуры класса, структуры или все определения класса объекта, мы разделим уникальные статические переменные.
Когда автоматическая переменная , которая высвобождается в конце функции, и эта функция вызывается снова, и переопределяет новую переменную

 

рекомендация

отwww.cnblogs.com/ziziQ/p/12509732.html
рекомендация