weixin_63561831 2021-12-18 14:49 采纳率: 87.5%
浏览 235
已结题

输入一行字符串,将每个单词的第一个字母改成大写字母

img

img

img


我打的代码不知道是哪的问题,从结果来看好像是没有循环

  • 写回答

2条回答 默认 最新

  • 关注

    *p -=32 的条件应该是 flag==1 并且 *p >='a',而且flag的初始值应该是1,否则第一个单词就没法更改了。
    flag=1的条件应该是 *p == ' '

    img

    代码修改如下:

    #include <stdio.h>
    int main()
    {
        int flag = 1; //这里初始化为1
        char str[80],*p = str;
        printf("Input a line char:");
        gets(str);
        while(*p != '\0')
        {
            if (*p>='a' && flag==1)
            {
                *p -= 32;
                flag = 0;
            }else if (*p == ' ')
            {
                flag = 1;
            }
            p++;
        }
        puts(str);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月26日
  • 已采纳回答 12月18日
  • 创建了问题 12月18日