Cで人気のある文字列関数[例付き]
公開: 2020-10-21C言語の文字列は、ヌル文字('\ 0')で終わる文字の配列です。 文字列の終わりにあるヌル文字はその終わりを示し、文字列は常に二重引用符で囲まれます。 C言語では、文字は一重引用符で囲まれています。 それらの両方のいくつかの例を以下に示します。
C文字と文字列の例または表現
- char string [10] = {'s'、'd'、'f'、'd'、't'、'j'、'a'、'\ 0'};
- char string [10] =” fresher”;
- char string [] =” fresher”;
上記の両方のステートメントの文字列の宣言には、わずかな違いがあります。 charをstring[10]として宣言する場合と同様に、10バイトのメモリスペースがstringの10個の値を保持するために割り当てられますが、string []のように宣言すると、プログラムの実行時にメモリが割り当てられます。
目次
文字列の宣言と初期化
Cプログラミングでは、文字列は上記のように2つの方法で宣言できます。 Cプログラミングでは、文字列はnullまたは「\0」文字で終了する文字のシーケンスです。 同じ例を以下に示します。
char temp [] =” temp string”;
文字列が二重引用符で囲まれたchar型で宣言されている場合、文字列の最後に\0が自動的に追加されます。 例えば:

char temp [] =” temp string”;
t | e | m | p | s | t | r | 私 | n | g | \ 0 |
文字列宣言
言語Cの文字列は、次の方法で宣言されます。
char temp [5];
s [0] s [1] s [2] s [3] s [4]
このようにして、長さ5の文字列を初期化できます。
文字列の初期化
文字列の初期化はさまざまな方法で実行でき、その一部を以下に示します。
char t [] =”一時文字列”;
char t [10] =”一時文字列”;
char t [] = {'t'、'e'、'm'、'd'、'\ 0'};
char t [5] = {'t'、'e'、'm'、'd'、'\ 0'};
T | e | m | p | \ 0 |
t [0] t [1] t [2] t [3] t [4]
上記のタイプの宣言では、4文字しかない文字列のみを格納できますが、そのような文字列または配列に5文字を格納する場合は、より長い文字配列が必要になる場合があります。
読む: Javaの文字列配列:コーディング例を含むJava文字列配列
文字列への値の割り当て
配列と文字列は代入演算子をサポートしていません。 文字列が宣言されると、文字列型変数に値を割り当てることはできません。 たとえば、C言語では、次の方法で値を記述して割り当てることはできません。
char t [100];
t =”一時値”;
Cでの文字列処理
次に、文字列の処理を非常に簡単にする、 Cで人気のある文字列関数のいくつかを参加させます。 これらの関数を使用すると、文字列の読み取り、文字列のコピーまたは反転などの文字列に対する複数の操作や、その他の多くの操作を文字列に対して簡単に実行できます。
文字列演算子または文字列関数を直接使用して、文字列を操作できます。 ここでは、この記事では、gets()、puts()、strlen()、strcopy()などのライブラリ関数について説明し、Cでの文字列処理について説明します。
プログラマーは、必要な問題に従って文字列関数を操作するために文字列関数を作成する必要がある場合があります。 ただし、文字列の操作は手動で行うことができますが、これによりプログラミングが非常に複雑で大きくなる可能性があります。
Cには、「string.h」として知られる文字列関数の標準ライブラリがあります。 拡張子が「.h」のこのヘッダーファイルには、構文が異なる多くの文字列処理関数が含まれています。 この記事の以下のセクションで、それらのいくつかについて説明します。
Cでのいくつかの一般的な文字列処理関数のリスト
関数 | 説明 |
strlen() | 文字列の長さを計算できます |
Strcpy() | 文字列の内容を別の文字列にコピーできます |
Strcat() | 2つの文字列を連結または結合するために使用されます |
Strcmp() | 2つの文字列を比較できます |
Strlwr() | 文字列を小文字に変換できます |
Strupr() | 文字列の文字を大文字に変換するために使用されます |
Strrev() | 文字列を反転するために使用されます |
プログラムで文字列処理関数のいずれかを使用する必要がある場合、関数はこれらの数だけに限定されません。 他にもたくさんの機能があります。 それで、それらについて話し合いましょう:
1) puts()およびgets()
文字列ヘッダーファイルのgetsとputsの2つの一般的な関数は、ユーザーからの入力を受け取り、文字列を表示するためにそれぞれ使用されます。 これらの関数は両方ともstring.hファイルで定義されています。 これらの関数の一例を見てみましょう。
#include main()
Int main()
{{
char temp [20];
printf( "名前を入力してください");
get(temp);
printf( "私の名前は:");
puts(temp);
0を返します。
}
2) strcat()
ある文字列を別の文字列の最後に追加する必要がある場合は、この関数が使用されます。 関数strcatは、宛先文字列の最後にソース文字列のコピーを追加できます。 ユーザーは、以下に説明する2つの引数を渡す必要があります。

i)src
ii)dest
ここでは、「src」文字列の場所で指定され、「dest」の場所で、ソース文字列を追加する必要のある宛先文字列が指定されます。
例
#include <string.h>
int main()
{{
char src [20] =“ before”;
char dest [20] =“ after”;
strcat(dest、src);
puts(dest);
0を返します。
}
出力は次のようになります。
3) 関数strlen()
文字列に直接使用できる文字列ヘッダーファイルのもう1つの関数は、strlen()です。 文字列の長さを調べる必要がある場合は、Cの文字列関数であるstrlen()関数を使用できます。 ただし、プログラムを手動で記述して文字列の長さを調べることもできますが、この直接関数を使用すると時間を節約できます。例を以下に示します。
#include <stdio.h>
int main()
{{
intの長さ;
char s [20]="私たちはここにいます";
length = strlen(s);
printf(“ \文字列の長さは=%d \ n”、長さ);
0を返します。
}
文字列の長さは=11です
4) 関数strcpy()
ある文字列の内容を別の文字列にコピーする必要がある場合は、この関数が使用されています。 関数の構文はstrcpy(dest、source)です。 この関数は、ある文字列の内容を別の文字列にコピーできます。 関数の一例を以下に示します。
#include <string.h>
int main()
{{
char src [20] =“宛先”;
char dest [20] =“”;
printf(“ \ nソース文字列は=%s”、src);
printf(“ \ n宛先文字列は=%s”、dest);
strcpy(dest、src);
printf(“ \ nstrcpy()=%sの後のターゲット文字列”、dest);
0を返します。
}
出力
ソース文字列は=宛先
ターゲット文字列は=
strcpy()=宛先の後のターゲット文字列
学ぶ: StringBufferとStringBuilder:StringBufferとStringBuilderの違い
5) 関数strcmp()
2つの文字列を比較して、それらが同じであるかどうかを確認するには、strcmp()関数を使用できます。 この関数は、0、> 0、または<0のいずれかの明確な値を返します。 この関数では、渡された2つの値は大文字と小文字を区別する手段として扱われ、「A」と「a」は異なる文字として扱われます。 関数によって返される値は、次のように使用されます。
i)2つの文字列が同じ場合は0が返されます
ii)str1 <str2の場合、負の値が返されます
iii)str1> str2の場合、正の値が返されます
例:
#include <stdio.h>
#include <string.h>
int main()
{{
char str1 [] =” copy”;
char str2 [] =”トロフィー”;
int I、j、k;
i = strcmp(str1、“ copy”);
j = strcmp(str1、str2);
k-strcmp(str1、“ f”);
printf(“ \ n%d%d%d”、I、j、k);
0を返します。
}
出力:0 -1 1
6) 関数strlwr()/ strupr()
文字列の小文字を大文字に、またはその逆に変換する必要がある場合があります。 この目的のために、Cには2つの直接文字列関数があり、大文字から小文字への変換、またはその逆の変換を実行するために使用できます。 ここでは、同じ例を説明しました。
#include <stdio.h>
#include <string.h>
int main()
{{
char str [] =”小文字に変換”;
printf(“%s \ n”、strlwr(str));
0を返します。
}
出力:小文字に変換してください
同様に、strlwrの代わりにstrupr関数を使用すると、すべてのコンテンツが大文字に変換されます。 文字列ヘッダーファイルで定義されているstrupr関数を使用できます。 この関数を使用すると、文字列のすべての文字が変換されます。これも、長い手動の手順は必要ありません。
7) 関数strrev()
巨大なプログラムや大規模なプログラムを手動で記述せずに文字列を逆にしたい場合は、この関数を使用できます。 関数strrev()は、文字列の内容を逆にするために使用されます。 Strrev関数は、指定された文字列が回文であるかどうかに関係なく、文字列の性質をチェックするために使用されます。 文字列逆関数には、他にもいくつかの用途とアプリケーションがあります。 その用途の1つを以下に示します。
#include <stdio.h>
#include <string.h>
int main()
{{
char temp [20] =” Reverse”;
printf( "反転前の文字列は:%s \ n"、temp);
printf( "String after strrev():%s"、strrev(temp));
0を返します。
}

目的を持ったいくつかの文字列処理関数:
先に述べたように、Cにはさらに多くの文字列関数があります。Cでの文字列処理に一般的に使用されるその他の関数は次のとおりです。
関数 | 目的 |
strchr() | str1で最初に出現するcharへのポインタを返します。 |
strdup() | 文字列を複製できます |
strset() | 文字列のすべての文字を指定された文字に設定します |
strrchr() | 最初のポインティング文字の出現を見つけるために使用されます |
また読む: Javaのスキャナークラス:コンストラクターとメソッドのタイプ、使用方法
最後の言葉
他のすべての言語Cと同様に、すぐに使用できる関数または組み込み関数の膨大なライブラリもあります。 文字列を処理するには、これらの関数を直接使用できます。 ただし、機能はこれらに限定されません。 ヘッダーファイルのCには、他にも多くの文字列関数があります。 それらの主な利点は、コーディングの時間と長さを削減することです。
Java、OOP、フルスタックソフトウェア開発について詳しく知りたい場合は、upGrad&IIIT-Bのフルスタックソフトウェア開発のPGディプロマをチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニングを提供します。9 +プロジェクト、割り当て、IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、トップ企業との仕事の支援。