文字列の長さを取得する練習!
問題概要
3 文字以上の文字列 が与えられる。この文字列 を次の規則にしたがって変換したものを出力せよ。
(先頭の文字)(先頭と末尾を除外した文字列の長さを表す数値)(末尾の文字)
たとえば、"internationalization" を変換すると "i18n" となる。
考えたこと
文字列 S
に対して、先頭と末尾を除外した文字列の長さ len
は次のように求められる(C++)。
int len = S.size() - 2
つまり、文字列 S
の長さ(S.size()
)から先頭と末尾の 2 文字分を引いている。
あとは、先頭の文字 S[0]
、len
、末尾の文字 S.back()
を順に出力すればよい。
コード
#include <bits/stdc++.h> using namespace std; int main() { string S; cin >> S; int len = S.size() - 2; cout << S[0] << len << S.back() << endl; }