C / C ++でのstrncmp()とstrcmp()の違い
strncmp()
関数strncmp()は、左の文字列と右の文字列を数値まで比較するために使用されます。 strcmp()と同じように機能します。左の文字列の一致する文字が右の文字列の文字よりも大きいASCII値を持っている場合、ゼロより大きい値を返します。左の文字列の一致する文字のASCII値が右の文字列の文字よりも小さい場合、ゼロ未満の値を返します。
C言語でのstrncmp()の構文は次のとおりです。
int strncmp ( const char *leftString, const char *rightString, size_t number );
ここで
-
leftString −右の文字列と比較される最初の文字列。
-
rightString −最初の文字列を比較するために使用される2番目の文字列。
-
番号 −比較する最大文字数。
これがC言語のstrncmp()の例です
例
#include<stdio.h> #include<string.h> int main() { char str1[] = "blank"; char str2[] = "Hello World!"; int result = strncmp(str1, str2, 1); if (result==0) printf("Strings are equal"); else printf("Strings are unequal"); printf("\nValue returned by strcmp() is: %d" , result); return 0; }
出力
これが出力です
Strings are unequal Value returned by strcmp() is: 26
strcmp()
関数strcmp()は組み込みのライブラリ関数であり、「string.h」ヘッダーファイルで宣言されています。この関数は、文字列引数を比較するために使用されます。文字列を辞書式に比較します。つまり、両方の文字列を文字ごとに比較します。両方の文字列の文字が等しくなるか、NULL文字が見つかるまで、文字列の最初の文字の比較を開始します。
両方の文字列の最初の文字が等しい場合は、2番目の文字をチェックします。このプロセスは、NULL文字が見つかるか、両方の文字が等しくなくなるまで続行されます。両方の文字列が同一である場合、つまり文字が両方の文字列で同じである場合は、ゼロを返します。
左の文字列の一致する文字が右の文字列の文字よりも大きいASCII値を持っている場合、ゼロより大きい値を返します。左の文字列の一致する文字のASCII値が右の文字列の文字よりも小さい場合、ゼロ未満の値を返します。
C言語でのstrcmp()の構文は次のとおりです。
int strcmp(const char *leftString, const char *rightString );
ここで
-
leftString −右の文字列と比較される最初の文字列。
-
rightString −最初の文字列を比較するために使用される2番目の文字列。
これがC言語のstrcmp()の例です
例
#include<stdio.h> #include<string.h> int main() { char str1[] = "hello World!"; char str2[] = "Hello World!"; int result = strcmp(str1, str2); if (result==0) printf("Strings are equal"); else printf("Strings are unequal"); printf("\nValue returned by strcmp() is: %d" , result); return 0; }
出力
出力は次のとおりです:
Strings are unequal Value returned by strcmp() is: 32
-
C++文字列定数と文字定数の違い
C ++では、一重引用符で囲まれた文字は文字リテラルです。文字型です。たとえば、「a」は、ASCIIベースのシステムでは値97のchar型です。 二重引用符で囲まれた1文字または文字列は、文字列リテラルを表します。これはconstchar[]型であり、文字列の長さ+1のサイズの配列を参照します。その余分な文字は文字列の終わりを示すためにあります。 文字列リテラルは、「abcdefg」のように任意の長さにすることができます。文字リテラルには、ほとんどの場合、1文字だけが含まれます。これらが印刷されるとき、文字列リテラルは、文字列で最初の\0またはNULL文字が検出されるまで印刷されます。
-
C++での関係演算子(==)とstd ::string ::compare()の違い
関係演算子==とstd::string ::compare()の違いは1つだけです。それが戻り値です。内部的には、string ::operator ==()はstring ::compare()を使用しています 関係演算子(==)は、2つの文字列が等しいかどうかを示すブール値を返し、compareは、文字列の相互関係を示す整数を返します。 ユースケースを詳しく説明するために、compare()は、2つの文字列がたまたま異なっている場合に、2つの文字列が互いにどのように関連するか(小さいか大きいか)に関心がある場合に役立ちます。たとえば、 例 #include <iostream>