输入三行文字,找出其中有多少个空格和多少个单词(规定单词间以一个或多个空格分开)。若一个单词恰好在行末结束,则下一 行的开头应有空格,句号和逗号后面也应有空格。
#include<stdio.h>
#include<string.h>
int blank=0,word=0;
void StringBracket(char *str)
{
int i,j,len;
len=strlen(str);
j=0;
int flag=0;
for(i=0; i<len; i++)
{
if(str[i]<'a'||str[i]>'z'){
flag=1;
}
if(str[i]!=' ')
{
if(j==0)
{
if(flag==0)
word++;
j=1;
flag=0;
}
}
else
{
blank++;
j=0;
}
}
}
void main()
{
int i;
char str[200];
for(i=0; i<3; i++)
{
printf("Input No.%d string:\n",i+1);
{
gets(str);
StringBracket(str);
}
}
printf("Blank:%d Word:%d\n",blank,word);
}
#include <stdio.h>
int main()
{
char *p,str[3][255],sp=' ';
int i,j,w=0,sps=0;
for (i=0;i<3;i++) gets(str[i]);
for(i=0;i<3;i++)
{
p=str[i];
while(*p==sp) {sps++;p++} /*跳过最前面的空格*/
do {
if (*p==sp)
{
w++;sps++;p++;
while(*p==sp) {sps++;p++;} /*跳过连续的空格*/
}
else if (*p)
p++;
} while(*p);
if (*(--p)!=sp) w++; /*最后一个词后面可能没有空格*/
}
printf("有%d个单词,%d个空格\n",w,sps);
system("PAUSE");
return 0;
}
输入的数字也被判定成了字母,咋办
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m