·杨枝甘露· 2023-05-24 16:52 采纳率: 100%
浏览 54
已结题

请教一道C语言程序设计

/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
题目:程序将英文句子中各单词首字母改成大写,并将各单词分行显示。单词间
      的空格数不定。
例如:英文句子为"welcome to    c     world "
      程序运行结果为:
      Welcome
      To
      C
      World 

------------------------------------------------------------------------
注意:请勿改动程序中的其他内容。
----------------------------------------------------------------------*/
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<ctype.h>
#include<stdlib.h>

int main()
{
    char s[]= "welcome     to c world ";
    int i,inword;
    inword=0;
    /**********Program**********/
    for(i=0;s[i];++i)
    {
        if(isalpha(s[i]))
        {
            if(inword==0)
            {
                s[i]=s[i]-32;
                inword=1;
            }
            putchar(s[i]);
        }
        else
        {
            if(inword==1)
            {
                inword=0;    
                printf("\n");
            }   
        }
    }  
    /**********  End  **********/
    return 0;
}

  • 写回答

4条回答 默认 最新

  • Endermund 2023-05-24 16:58
    关注

    哪个地方不理解

    int main()
    {
        char s[] = "welcome     to c world ";
        int i, inword;
        inword = 0;
        /**********Program**********/
        for (i = 0; s[i]; ++i)
        {
            if (isalpha(s[i]))//如果s[i]是字母,则为真
            {
                if (inword == 0)//找到第一个字母
                {
                    s[i] = s[i] - 32;//根据ascii码表,A 比 a 小32
                    inword = 1;//防止welcome整串大写
                }
                putchar(s[i]);//打印s[i]
            }
            else//当 Welcome 打印完了之后,后面是字符'\0'不是字母,所以判断来这
            {
                if (inword == 1)
                {
                    inword = 0;//重置,找第一个字母
                    printf("\n");//换行
                }
                //重置之后else语句里面当成空语句
            }
        }
        /**********  End  **********/
        return 0;
    }
    
    

    有帮助的话还请采纳~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 6月1日
  • 已采纳回答 5月24日
  • 创建了问题 5月24日

悬赏问题

  • ¥15 微信小程序商城如何实现多商户收款 平台分润抽成
  • ¥15 HC32L176调试了一个通过TIMER5+DMA驱动WS2812B
  • ¥15 三菱FX系列PLC串口指令
  • ¥15 cocos的js代码调用wx.createUseInfoButton问题!
  • ¥15 关于自相关函数法和周期图法实现对随机信号的功率谱估计的matlab程序运行的问题,请各位专家解答!
  • ¥15 Python程序,深度学习,有偿私
  • ¥15 扫描枪扫条形码出现问题
  • ¥35 poi合并多个word成一个新word,原word中横版没了.
  • ¥15 【火车头采集器】搜狐娱乐这种列表页网址,怎么采集?
  • ¥15 求MCSCANX 帮助