文字列型とは?もじれつがた
文字列型とは、文字を並べたデータを扱うためのデータ型。1文字ずつの並びとして長さを持ち、連結・部分取り出し・長さの取得・比較といった演算が用意される。内部は文字コードの配列として保持されるため、扱える文字の範囲は、その言語や環境が採用している文字コードに左右される。
最終更新:2026-10-09
この語が出る過去問を解く →背景
数値の型しかなければ、氏名や住所は文字コードの並びとして自前で管理することになり、長さの持ち方も比較のしかたもプログラムごとにばらつく。文字の並びを1つの型として言語に組み込むと、長さの管理と領域の境界の扱いを処理系へ任せられるようになる。確保した領域の外へ書き込む事故を防ぐという、安全面での意味も大きい。
具体例
"abc"のように二重引用符で囲んだ値は文字列型になり、長さを求めれば3、2文字目から2文字を取り出せば"bc"になる。数値型と違い、"1"+"2"は加算されず連結されて"12"になる言語が多い。
試験での引っ掛け
文字列型の"123"と数値型の123は別物で、そのまま加算すると連結になったり、比較の結果が直感と食い違ったりする。文字数とバイト数も一致せず、日本語をUTF-8で持つと1文字が3バイトになる。1文字だけを表す文字型を持つ言語では、文字型との区別も問われる。
関連用語
出た過去問
出典:令和4年度 公開問題 基本情報技術者試験 科目B 問2(IPA)
次のプログラム中の a ~ c に入れる正しい答えの組合せを、解答群の中から選べ。 関数fizzBuzzは、引数で与えられた値が、3で割り切れて5で割り切れない…
正解:a: 3と5, b: 3, c: 5
要点:elseif連鎖では限定的な条件を先に判定する
if〜elseifは上から順に判定され、最初に成立した条件で処理が確定します。3と5の両方で割り切れる数は3でも5でも割り切れるため、最も限定的な「3と5」の判定を先頭に置かないと、より緩い条件に先に吸収されてしまいます。したがってaに「3と5」、続いてb・cに3と5を並べる組合せが正しくなります。
出典:令和4年度 公開問題 基本情報技術者試験 科目B 問8(IPA)
出典:令和6年度 公開問題 基本情報技術者試験 科目B 問2(IPA)
次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数convDecimalは、引数として与えられた、"0"と"1"だけから成る、1文字以上の文字…
正解:result × 2 + int(binary の i文字目の文字)
要点:2進→10進は上位桁から2倍して足すを繰り返す
2進数を上位桁から順に読むときは、これまでの結果を2倍して次の桁の値を足すという手順を繰り返せばよい。ループは1文字目から順に進むので、i文字目の文字をそのまま使う。例えば10010なら1、2、4、9、18と積み上がり、正しく18が得られる。
出典:令和6年度 公開問題 基本情報技術者試験 科目B 問5(IPA)
次のプログラム中の a ~ c に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 一度の注文で購入された商品のリストを、…
正解:a: arrayM[i] b: arrayK[i] c: ordersの要素数
要点:入れ子の内側が同時購入数M、外側が購入注文数K
内側のifは、注文に相手商品が含まれるという条件の中にさらに対象商品も含まれるという条件が入れ子になっている。したがって内側で増やすのは同時購入数のarrayM、外側で増やすのは相手商品の購入注文数のarrayKになる。関連度の式の分子にある全注文数は注文データの件数そのものなので、ordersの要素数が入る。
出典:令和8年度 公開問題 基本情報技術者試験 科目B 問5(IPA)
次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 一つの要素だけが1で他の要素が0である…
正解:a: colors[i]の値、b: colors[j] が colorVector[k] と等しい
要点:One-Hot表現は重複なし一覧との一致位置だけを1にする
前半のループは重複のない色名一覧を作る処理なので、まだ登録されていない色名 colors[i] の値をそのまま colorVector の末尾へ追加します。後半は各色 colors[j] について一覧の要素を順に見て、一致した位置だけ1、それ以外は0を並べる処理なので、判定条件は colors[j] と colorVector[k] が等しいかどうかです。一覧側の要素が colors に含まれるかを問う条件では、常に真になって全要素が1になってしまいます。
出典・参考
公式シラバスの1 基礎理論 > 3. プログラミング > (1) プログラミングに掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。