CP1024 单词切分以及一些拓展题
又是一道小题,(但是也不是空格作为分割符,范围更广)本质上还是连续字符串,又考了判断嵌套啊
俺的做法:
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main()
{
char a[100];//用于存储刚开始的字符串
char b[100][100];//用于存储切分出来的单词
int k=0,j=0;//计数器
gets(a);
for(int i=0; a[i]!='\0'; i++) //字符串遍历
{
if(a[i]==' '||a[i] =='1'||a[i] =='2'||a[i] =='3'||a[i] =='4'||a[i] =='5'||a[i] =='6'||a[i] =='7'||a[i] =='8'||a[i] =='9'||a[i] =='0')//判断是不是字母
{
if(a[i+1]==' '||a[i+1] =='1'||a[i+1] =='2'||a[i+1] =='3'||a[i+1] =='4'||a[i+1] =='5'||a[i+1] =='6'||a[i+1] =='7'||a[i+1] =='8'||a[i+1] =='9'||a[i+1] =='0')//判断第二个是不是字母,防止误杀友军
{
continue;//是的话过掉,下一个
}
else
{
k++;//反之则另起一行继续存储
}
}
else//存储单词
{
if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))//防止把标点放进去
{
b[k][j]=a[i];//存储单词
j++;
}
}
b[k][j