Матч 340, Преобразователь свойств (CssPropertyConverter)

Дивизион 2, Уровень 1

 

Имена css свойств пишутся маленькими буквами латинского алфавита с использованием дефисов. Например, типичными именами являются “z-index”, “padding-left”, “border-collapse”. В JavaScript для установки css стиля используют CAMEL нотацию, в которой каждое слово кроме первого начинается с заглавной буквы, слова пишутся слитно. Например, имя z-index” в CAMEL нотации будет иметь вид zIndex”.

В задаче требуется слово cssPropertyName перевести в CAMEL нотацию.

 

Класс: CssPropertyConverter

Метод: string getCamelized(string cssPropertyName)

Ограничения: cssPropertyName содержит от 1 до 50 символов ‘a’ – ‘z’ и ‘-’, справа и слева от каждого дефиса находится буква.

 

Вход. Строка, содержащая  имя css свойства.

 

Выход. Строка, содержащая имя css свойства в CAMEL нотации.

 

Пример входа

cssPropertyName

z-index

border-collapse

top-border-width

 

Пример выхода

“zIndex”

“borderCollapse”

“topBorderWidth”

 

 

РЕШЕНИЕ

обработка строк

 

Проходим по строке слева направо. Стираем каждый встретившийся симол дефиса и переводим следующую за ним букву в верхний регистр.

 

ПРОГРАММА

 

#include <cstdio>

#include <string>

using namespace std;

 

class CssPropertyConverter

{

public:

  string getCamelized(string cssPropertyName)

  {

    for(int i = 0; i < cssPropertyName.size(); i++)

      if(cssPropertyName[i] == '-')

      {

        cssPropertyName.erase(cssPropertyName.begin() + i);

        cssPropertyName[i] = toupper(cssPropertyName[i]);

      }

    return cssPropertyName;

  }

};