A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 为荣艺学iOS 中级黑马   /  2015-11-11 00:05  /  1227 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

*
8、 输入一英文句子,将其中所有单词首字符转换成大写后输出。(C语言)

*/

#include <stdio.h>
#include <stdlib.h>
#define M 200
//转成大写函数的声明
void Upper(char *in);

int main(int argc, const char * argv[])
{
    printf("第8题开始:\n");
    char input[M] = {'\0'};
    printf("请输入英文句子:\n");
    //gets()函数会报warning,但是这里要接收空格,所以还是使用了
    gets(input);
    //调用函数找到单词的首字符,并且将其转换成大写
    Upper(input);
    printf("第8题结束\n");
    return 0;
}

//函数:首字符转换成大写
void Upper(char in[])
{
    //判定是否是单词首字母的标志
    int flag = 1;
    int i = 0;
    while (in[i])
    {
        //当遇到空格和Tab键时,下1个字母即为首字母
        if (in[i] == ' ' || in[i] == '\t')
        {
            flag = 1;
        }else if (flag == 1)
        {
            //将首字母的小写转换成大写
            if (in[i] >= 'a' && in[i] <= 'z')
            {
                in[i] = in[i] - ('a' - 'A');
            }
            flag = 0;
        }
        i++;
    }
    printf("%s\n",in);
}

5 个回复

倒序浏览
学习了
回复 使用道具 举报
参考参考
回复 使用道具 举报
视频里面有
回复 使用道具 举报
路过 看看 一齐努力
回复 使用道具 举报
while(ni[i])循环挺好的,我觉得也可以用for,然后用strlen,计算input的长度,也可以做出来
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马