黑马程序员技术交流社区

标题: 一个基础测试题 [打印本页]

作者: 为荣艺学iOS    时间: 2015-11-11 00:05
标题: 一个基础测试题
*
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);
}
作者: 韩三少    时间: 2015-11-11 00:24
学习了
作者: zhecipinle    时间: 2015-11-11 14:19
参考参考
作者: cube川    时间: 2015-11-11 18:07
视频里面有
作者: arhui    时间: 2015-11-11 19:50
路过 看看 一齐努力
作者: we7765604    时间: 2015-11-11 20:04
while(ni[i])循环挺好的,我觉得也可以用for,然后用strlen,计算input的长度,也可以做出来




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2