C言語 文字列操作マスター:標準ライブラリ関数完全ガイド
文字列操作と標準ライブラリ
問題の要件に合わせて文字列を操作する必要が頻繁にあります。手動で行うことも可能ですが、プログラムが複雑・大規模になりがちです。
これを解決するため、C言語は標準ライブラリ "string.h" で多数の文字列処理関数を提供しています。
よく使用される文字列処理関数:
| 関数 | 機能 |
|---|---|
strlen() | 文字列の長さを計算 |
strcpy() | 文字列を別の文字列にコピー |
strcat() | 2つの文字列を連結(結合) |
strcmp() | 2つの文字列を比較 |
strlwr() | 文字列を小文字に変換 |
strupr() | 文字列を大文字に変換 |
文字列処理関数は "string.h" ヘッダーファイルで定義されています。
#include <string.h>
注意: 文字列処理関数を実行するには上記インクルードが必要です。
gets() と puts()
gets() と puts() は、ユーザーから文字列入力を受け取り、表示する2つの文字列関数です(前章で言及)。
#include <stdio.h>
int main() {
char name[30];
printf("名前を入力: ");
gets(name); // ユーザーから文字列を読み取る関数
printf("名前: ");
puts(name); // 文字列を表示する関数
return 0;
}
注意: gets() と puts() は文字列を扱いますが、両関数とも "stdio.h" ヘッダーファイルで定義されています。
主要関数の詳細と使用例
strlen() - 文字列長取得
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello World";
printf("文字列長: %zu\n", strlen(str)); // 出力: 11
return 0;
}
strcpy() - 文字列コピー
#include <stdio.h>
#include <string.h>
int main() {
char src[] = "コピー元";
char dest[20];
strcpy(dest, src);
printf("コピー先: %s\n", dest); // 出力: コピー元
return 0;
}
strcat() - 文字列連結
#include <stdio.h>
#include <string.h>
int main() {
char str1[20] = "Hello";
char str2[] = " World";
strcat(str1, str2);
printf("連結後: %s\n", str1); // 出力: Hello World
return 0;
}
strcmp() - 文字列比較
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "abc";
char str2[] = "abd";
int result = strcmp(str1, str2);
if (result == 0) printf("等しい\n");
else if (result < 0) printf("str1 が小さい\n");
else printf("str1 が大きい\n");
return 0;
}
strlwr() / strupr() - 大文字小文字変換
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello World";
printf("小文字: %s\n", strlwr(str)); // hello world
printf("大文字: %s\n", strupr(str)); // HELLO WORLD
return 0;
}
これら標準ライブラリ関数を活用することで、文字列操作をシンプルかつ効率的に記述できます。手動実装の手間を省き、バグリスクも低減できます。
C言語
- C言語 strlen() vs sizeof():違いと正しい使い分け
- 2021年版:Windows/macOS/Linux対応C++ IDEおすすめ15選(無料・有料)
- C言語入出力(I/O)マスター:scanf()とprintf()徹底解説
- C# 演算子の優先順位と結合規則をマスターする:実践ガイド
- C#:Microsoftのモダンプログラミング言語の包括的概要
- C# 継承をマスターする:概念、種類、実践コード
- Windows、macOS、Linux への GCC コンパイラ インストール: ステップバイステップ ガイド
- C言語プログラミング面接質問トップ100&回答(2024年版)
- C言語変数・定数・リテラル完全ガイド
- C++ストリームをマスター:cout、cin、cerr、clogの実践ガイド
- C言語 文字列: 宣言・初期化・入出力をマスターする