文字列の長さの取得・連結・先頭文字の交換を行うC++プログラム
2つの文字列 s と t が与えられたとき、次の3行で構成される出力を求めます。1行目には s と t の長さをスペース区切りで、2行目には s と t を連結した文字列を、3行目には先頭の文字を入れ替えた s と t をスペース区切りで表示します。
例えば、入力が s = "hello"、t = "programmer" の場合、出力は以下のようになります。
5 10 helloprogrammer pello hrogrammer
解法のアプローチ
この問題を解くためには、以下の手順に従います。
sの長さを表示し、スペースを1つ出力してからtの長さを表示するs + t(連結した文字列)を表示するtemp := s[0]として、sの先頭文字を一時変数に保存するs[0] := t[0]として、sの先頭をtの先頭文字で置き換えるt[0] := tempとして、tの先頭を保存しておいた文字で置き換えるsを表示し、スペースを1つ出力してからtを表示する
実装例
以下の実装を見て、より深く理解しましょう。
#include <iostream>
using namespace std;
int main(){
string s = "hello", t = "programmer";
cout << s.length() << " " << t.length() << endl;
cout << s + t << endl;
char temp = s[0];
s[0] = t[0];
t[0] = temp;
cout << s << " " << t << endl;
}
入力
"hello", "programmer"
出力
5 10 helloprogrammer pello hrogrammer
このプログラムでは、length() メソッドで文字列の長さを取得し、+ 演算子で文字列を連結し、インデックスアクセスによって先頭の文字を交換しています。C++の std::string を使えば、これらの文字列操作を簡単かつ直感的に実装できます。
-
C++で文字列をコピーする方法:strcpy()を使う場合と使わない場合のプログラム解説
文字列(string)とは、null文字(\0)で終端される1次元のchar型配列のことです。ある文字列の値を別の文字列にコピーすることができます。コピーの方法には、標準ライブラリ関数であるstrcpy()を使用する方法と、使用せずに自前で処理する方法の2通りがあります。strcpy()を使わずに文字列をコピーするプログラムまずは、標準ライブラリに頼らず、forループを使って1文字ずつコピーする方法を見てみましょう。#include <iostream> using namespace std; int main() { char s
-
【C++】2つの数値を交換(スワップ)するプログラムの書き方
2つの数値を交換(スワップ)するC++プログラムを作成する方法は、主に2つあります。1つ目は一時変数(temp変数)を使用する方法で、2つ目は第3の変数を使わない方法です。ここでは、それぞれの方法についてサンプルコード付きで詳しく解説します。一時変数を使って2つの数値を交換するプログラムまず、一時変数を使って2つの数値を交換する基本的なプログラムを見てみましょう。サンプルコード#include <iostream>using namespace std;int main() { int a = 10, b = 5, temp; tem