
1和老枯慎2
可以归结为一个问题:
if(!isspace(c)&&!inword)
{
inword=true
n_words++
}
if(isspace(c)&&inword)
inword=false
当来到某一个字符时,如果它不是空格,并且是单词的开始,那么我们就把单词数n_words>加上1,标志又多了一个新的单词。
!isspace(c)
用于判断它不是空格,!inword用于判断>它是单词的开头而不是单败颤词中间的某个字母。
2,
prev='\n':
因为我们靠判断有几个'\n'来判断有多少行的,但是最后一行是以侍敬STOP结尾的,如果STOP前
面的一个字符不是'\n',那么我们就统计少了一行。这个prev=c就是保存结束之前最后一个
字符,也就是
|
前面的那个字符,
如果它不是'\n'的话.它就不是一个完整行。
在你的基础上做了点修改,游耐 以#结束#include<stdio.h>
int main(void)
{
int nc=0/* number of characters */
int nq=0/* numerical quantities */
int bs=0/* number of blank spaces */
char e
int nw=0,word=0,nl=1
printf("Text Analysis\n")
printf("please input the Text:\n")
e=getchar()
while (e!='#')
{
if((e>='a'&&e<='z')||(e>='A'&&e<悄厅='Z')) nc++
if(e>='0'&&e<='9') nq++
if(e==' ') bs++
if(e=='\n') nl++
if(e==' ') word=0
else if(word==0)
{
word=1
nw++
}
if(e=='\n') word=0
else if(word==0)
{
word=1
nw++
}
e=getchar()
}
printf("Number of Words:%d \n",nw)
printf("Number of Characters:%d\n",nc)
printf("Number of blank spaces:%d\n",bs)
printf("Number of numerical characters:%d\n"神运春,nq)
printf("Number of lines:%d \n",nl)
return 0
}
#include<stdio.h>滚碰int main()
{
int i,t=0
char s[100]
gets(s)
for(i=0s[i]!=0i++)
if(s[i]<0&&s[i+1]<派悄0)
t++,i++
printf("中文汉字以及中文标点数为%d"尘备渣,t)
return 0
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)