急急急,各位大佬看看我吧

输入三行文字,找出其中有多少个空格和多少个单词(规定单词间以一个或多个空格分开)。若一个单词恰好在行末结束,则下一 行的开头应有空格,句号和逗号后面也应有空格。

#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