⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2_10_2b.c

📁 C语言常用算法源代码,非常好用非常好用
💻 C
字号:
/* ======================================== */
/*    程式实例: 2_10_2b.c                   */
/*    字符串和数学运算式的分割                */
/* ======================================== */

/* ---------------------------------------- */
/*  分割字符串或数学运算式                    */
/* ---------------------------------------- */
int token(char *str1,char *str2,int pos)
{
   int i,j;

   i = pos;                       /* 从分割位置开始   */
   while ( str1[i] == ' ' )       /* 跳过空字元       */
      i++;
   if ( str1[i] != '\0' )         /* 不是字符串结束     */
   {
      j = 0;                      /* 找下一个空白字元 */
      while ( str1[i] != '\0' && str1[i] != ' ' )
      {
         str2[j] = str1[i];       /* 拷贝非空白字元   */
         if ( operator(str1[i]) ) /* 是不是运算子     */
            /* 是否分割字符串是运算子 */
            if ( j > 0 )
            {                     /* 不是             */
               str2[j] = '\0';    /* 传回之前的字符串   */
               return i;
            }
            else
            {                     /* 是               */
               str2[j+1] = '\0';  /* 传回运算子       */
               return i+1;
            }
         i++;
         j++;
      }
      str2[j] = '\0';             /* 分割字符串结束字元 */
      return i;                   /* 传回目前位置     */
   }
   else
      return -1;                  /* 分割结束         */
}

/* ---------------------------------------- */
/*  分割运算子字符串设定                      */
/* ---------------------------------------- */
int operator(char op)
{
   switch ( op )
   {
      case '+':
      case '-':
      case '*':
      case '/':
      case '=':
      case '.': return 1;         /* 是运算子         */
      default:  return 0;         /* 不是运算子       */
   }                              
}

/* ---------------------------------------- */
/*  主程式                                  */
/* ---------------------------------------- */
void main()
{
   char string[100];              /* 字符串阵列宣告     */
   char token_string[20];         /* 分割字符串宣告     */
   int pos;                       /* 分割位置         */

   printf("请输入字符串 ==> ");
   gets(string);                  /* 读取字符串         */
   pos = 0;                       /* 设定分割位置初值 */
   printf("分割结果:\n");
   /* 分割字符串直到字符串结束 */
   while ( (pos = token(string,token_string,pos)) != -1 )
      printf("%s\n",token_string);  /* 印出各分割字符串 */
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -