0

私のプログラムでは、配列の最初のスペースをチェックする方法がわかりません

例えば

char *array[] ={'a','d','d','M',' ','-','P',' ','e'};

最初のスペースを取得し、配列の長さの前に最初のスペースを取得する方法

これが私のプログラムです:

 printf("Please enter appointment: \n");
 n = read(STDIN_FILENO,buf,80); /* read a line */
 int result=strncmp(buf, "addM", get first space before length);

switch (result)
case 0: go to other function

または配列文字列の前の最初のスペースを比較する他の方法

4

3 に答える 3

2

strchr()文字配列内の文字を見つけるために使用できます。

#include <string.h>

char *space_ptr = strchr(array, ' ');
int posn = -1;
if (space_ptr != NULL)
{
   posn = space_ptr - array;
}
于 2013-03-29T13:15:57.147 に答える
1
  /* buffer large enough to hold 80 characters */
  char buf[80];
  int i;
  int n;

  printf("Please enter appointment: \n");
  n = read(STDIN_FILENO,buf,80); /* read a line */

  /* a keyword to search */
  #define KEYWORD_ADDM  "addM"
  #define KEYWORD_ADDM_SZ  (sizeof(KEYWORD_ADDM)-1)

  /* loop-find first space */
  for ( i = 0; i < n; i++ )
  {
    if ( buf[i] == ' ' )
      break;
  }
  if ( i == n )
  {
    /* space was not found in input */
  }
  else
  {
    /* space was found in input at index i */
    if ( ( i >= KEYWORD_ADDM_SZ ) && 
         ( strncmp( &buf[0], KEYWORD_ADDM, KEYWORD_ADDM_SZ ) == 0 ) )
    {
      /* match */
    }
    else
    {
      /* not a match */
    }
  }
于 2013-03-29T13:23:47.123 に答える
0

ビルトイン ライブラリ string.h を使用することをお勧めします。これには、文字列の解析に役立つ多くの関数が含まれています。

見る:

string.h - strtok、strchr、strspn。

于 2013-03-29T13:17:12.220 に答える