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 回答