-2

いくつかの char 変数を処理したいので、char の処理に関してこれらのタスクを実行できるいくつかの関数のリストを取得したいと考えています。

  • char の最初の文字を取得する (var_name[1] は機能しないようです)
  • char の最後の文字を取得する
  • char1 が char2 と一致するかどうかを確認します (たとえば、「unicorn」が「bicycle」を含む単語と一致する場合)

これらのメソッドのいくつかは stdio.h などのライブラリに存在すると確信していますが、Google は私の友人ではありません。

編集:私の 3 番目の質問は、strcmp との直接の一致ではなく、単一文字の一致 (たとえば、"hey" と "hello" の場合) が一般的な文字として e を持つことを意味します。

4

5 に答える 5

3
  • 最初の文字を取得するために使用var_name[0]します (配列インデックスは から0まで実行されますN - 1。ここNで、 は配列内の要素の数です)。
  • var_name[strlen(var_name) - 1]最後の文字を取得するために使用します。
  • strcmp()2 つの文字列を比較するために使用しcharます。

編集:

文字列内の文字を検索するには、strchr()を使用できます。

if (strchr("hello", 'e') && strchr("hey", 'e'))
{
}

strpbrk()2 つの文字列に共通の文字があるかどうかを示す関数もあります。

if (strpbrk("hello", "hey"))
{
}

単一の文字であるachar[]ではなく、 aを意味すると仮定します。char

于 2012-04-26T19:54:28.747 に答える
1
  1. Cは0ベースのインデックスを使用し、var_name[0]は最初の文字を提供します。
  2. strlen()は、文字列の長さを示します。これは、1に対する私の答えと合わせて、
    char lastchar = var_name [strlen(var_name)-1]; を意味します。http://www.cplusplus.com/reference/clibrary/cstring/strlen/

  3. strcmp(var_name1、var_name2)==0。http://www.cplusplus.com/reference/clibrary/cstring/strcmp/

于 2012-04-26T19:57:03.110 に答える
0

これらのメソッドのいくつかはstdio.hなどのライブラリに存在すると確信していますが、googleは私の友達ではありません。

C標準ライブラリ(libc)の文字列関数は、ヘッダーファイルに記述されています。UNIXのようなマシンを使用している場合はman 3 string、コマンドラインで入力してみてください。その後、プログラムを再度使用して、man特定の機能に関する詳細情報を取得できますman 3 strlenman(「3」は、C標準ライブラリ関数について説明している「セクション3」を参照するように指示しているだけです。)

于 2012-04-26T20:00:17.937 に答える
0

あなたが探しているのは、C ランタイム ライブラリの文字列関数です。これらは、stdio.h ではなく、string.h で定義されています。

しかし、問題のリストは単純です。

var_name[0] は、配列の最初の char にアクセスするのに最適です。C の配列はゼロから始まるため、var_name[ 1] は機能しません。

配列の最後の文字は次のとおりです。

char c;
c = var_name[strlen(var_name)-1];

等しいかどうかのテストは簡単です。

if (var_name[0] == var_name[1])
   ; // they match
于 2012-04-26T19:58:58.917 に答える
0

C および C++ 文字列のインデックスはゼロです。特定の長さの文字列を保持するために必要なメモリは、少なくとも文字列の長さと、文字列ターミネータ \0 の 1 文字である必要があります。したがって、最初の文字は配列 [0] です。

@Carey Gregory が言ったように、基本的な文字列処理関数は string.h にあります。ただし、これらは文字列を処理するためのプリミティブにすぎません。C は十分に低レベルな言語であり、string.h の関数に基づいて独自の文字列処理ライブラリを構築する機会があります。

たとえば、関数に文字列ポインターを渡し、文字列の長さだけでなく、その正しい文字列を保持するバッファーの長さも渡したい場合があります。

于 2012-04-26T20:12:09.117 に答える