目标:
- 掌握英文句子按单词和标点符号分割的方法
- 掌握算数表达式按运算对象和运算符(只涉及+、-、*、/)分割的方法
代码如下
数字分割与英文分割(其实两个都能实现)
#include<stdio.h>
#include<string.h>
int partition(char* string, char* part, int pos)//指针string指向原来的数组,part指向分割后的字符,pos代表从第pos个位置开始分割
{
int i = pos, j = 0;
while (string[i] == ' ')
i++;
if (string[i] != '\0')
{
j = 0;
while (string[i] != '\0' && string[i] != ' ')
{
part[j] = string[i];
j++;
i++;
}
part[j] = '\0';
return i;
}
else return -1;
}
void main()
{
char string[50];
char part[20];
int pos=0,k=0;
printf("请输入长度不大于50的字符串或者算术表达式:\n");
gets_s(string);//字符串有许多的空格,不能用scanf_s输入
printf("Partition result:\n");
while ((pos=partition(string, part, pos))!=-1)//pos的值需要不断更新,才能跳出循环
{
++k;
printf("Paratition %d:%s\n", k, part);
}
}
代码呈现结果如下