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

C 言語の文字列をマスター: 宣言、入力、出力、ライブラリ関数

C 言語における文字列とは?

C における 文字列 は、ヌル文字 (\0) で終端される連続した文字のシーケンスです。言語に専用の文字列型はありませんが、通常は char 型の配列として表現されます。文字列リテラルで初期化する際、コンパイラは自動的にヌル終端文字を追加します。

"Welcome to the world of programming!"

標準ライブラリヘッダー <string.h> には、文字列を効率的に操作するための豊富な関数が用意されています。

文字列の宣言と初期化

C は文字列を文字配列として扱うため、配列サイズを指定する必要があります。サイズはヌル終端文字を除く最大文字数を定義します。

char string_variable_name[array_size];

典型的な宣言:

char first_name[15]; /* 最大 14 文字 + \0 */
char last_name[15];

初期化子を与えると、コンパイラが文字数を数えて自動的にヌル終端文字を追加します。初期化子がある場合は配列サイズを省略可能です。

char first_name[15] = "ANTHONY";
char first_name[] = "NATHAN"; /* サイズ推論 */
char string3[6] = {'h','e','l','l','o','\0'}; /* 明示的終端 */

ユーザーからの文字列入力

入力関数は安全性と振る舞いが異なります:

fgets 使用例:

#include <stdio.h>
int main() {
    char name[50];
    printf("Enter your full name: ");
    fgets(name, sizeof(name), stdin);
    printf("Your name is %s", name);
    return 0;
}

文字列の出力

文字列表示の古典的方法は printf("%s", name);。便利な代替手段:

puts 例:

#include <stdio.h>
int main() {
    char greeting[] = "Hello, world!";
    puts(greeting);
    return 0;
}

文字列ライブラリ (<string.h>)

よく使用される関数:

関数説明
strlen文字列の長さを返す (ヌル終端文字除く)。
strcatある文字列を別の文字列に連結。
strcmp2 つの文字列を辞書順で比較。
strcpy文字列をコピー。
strncmp最大 n 文字まで比較。
strncpy最大 n 文字までコピー。
strchr文字の最初の出現位置を検索。
strrchr文字の最後の出現位置を検索。
strstr部分文字列を検索。
strncat最大 n 文字まで連結。
strlwr小文字に変換 (非標準)。
strupr大文字に変換 (非標準)。
strrev文字列を反転 (非標準)。

説明用プログラム:

#include <stdio.h>
#include <string.h>
int main() {
    char str1[20] = "Hello";
    char str2[20] = " World!";
    char result[40];
    /* 比較 */
    if (strcmp(str1, str2) == 0) puts("Strings are equal");
    else puts("Strings are not equal");
    /* 連結 */
    strcat(str1, str2); // str1 は "Hello World!" に
    printf("Concatenated: %s\n", str1);
    /* 長さ */
    printf("Length of str1: %zu\n", strlen(str1));
    /* コピー */
    strcpy(result, str1);
    printf("Copied string: %s\n", result);
    return 0;
}

文字列から数値への変換

標準変換関数:

atoi 例:

#include <stdio.h>
#include <stdlib.h>
int main() {
    char number_str[20];
    printf("Enter a number: ");
    fgets(number_str, sizeof(number_str), stdin);
    int num = atoi(number_str);
    printf("You entered %d\n", num);
    return 0;
}

重要なポイント

C言語

  1. C++配列を徹底解説:宣言、初期化、ポインタ活用テクニック
  2. C++文字列関数をマスター:strcpy、strcat、strlen、strcmpの実践例
  3. C言語のrealloc()活用ガイド:構文、ベストプラクティス、実例
  4. C言語free()関数完全マスター:実践ガイドと例
  5. C#の文字列操作:Stringクラスのプロパティ・メソッド・ベストプラクティス
  6. VHDLで文字列リストを作成する: ベスト・プラクティスと実装例
  7. Python文字列操作マスター:replace、join、split、reverse、大文字小文字変換
  8. Java文字列をマスター:生成、メソッド、ベストプラクティス
  9. Java Enumの文字列表現マスター:デフォルト、オーバーライド、高度なパターン
  10. Java String.length()メソッド:文字列サイズ取得の実例解説
  11. Java Stringクラス完全ガイド:生成、操作、主要メソッド46選