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