工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

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言語

  1. C言語 strlen() vs sizeof():違いと正しい使い分け
  2. 2021年版:Windows/macOS/Linux対応C++ IDEおすすめ15選(無料・有料)
  3. C言語入出力(I/O)マスター:scanf()とprintf()徹底解説
  4. C# 演算子の優先順位と結合規則をマスターする:実践ガイド
  5. C#:Microsoftのモダンプログラミング言語の包括的概要
  6. C# 継承をマスターする:概念、種類、実践コード
  7. Windows、macOS、Linux への GCC コンパイラ インストール: ステップバイステップ ガイド
  8. C言語プログラミング面接質問トップ100&回答(2024年版)
  9. C言語変数・定数・リテラル完全ガイド
  10. C++ストリームをマスター:cout、cin、cerr、clogの実践ガイド
  11. C言語 文字列: 宣言・初期化・入出力をマスターする