黑马程序员技术交流社区

标题: 输入一英文句子,将其中所有单词首字符转换成大写后输... [打印本页]

作者: iphone    时间: 2015-8-25 14:18
标题: 输入一英文句子,将其中所有单词首字符转换成大写后输...
#include <stdio.h>

int main(int argc, const char * argv[])
{
    printf("请输入一段英文:\n");
   
    char a[100];  //定义一个数组接收字符串
   
    char *p = a;  //定义一指针指向数组首元素
   
    gets(a);  //输入一句英文
   
    *p -= 32;  //将第一个单词变为大写
   
    while(*p != '\0')  //循环直到遇到\0
    {
        
        if(*p != ' ')  //如果不为空格就继续判断
        {
            p++;
        }
        else if(*p == ' ')  //如果检测到了空格就使下一个字母变为大写
        {
            p++;
            
            *p -= 32;
        }
    }
   
    puts(a);  //输出a
   
    return 0;
}


我看书上的比这个复杂点。。


作者: tangbinbin    时间: 2015-8-25 15:40
确实这个要简单一点,看起来更容易懂
作者: iphone    时间: 2015-8-25 17:29
tangbinbin 发表于 2015-8-25 15:40
确实这个要简单一点,看起来更容易懂

但是没有处理,第一个是空格的情况。。。
作者: to_love    时间: 2015-8-25 20:22
*p -= 32,为何是第一个字母?
作者: 15132876050    时间: 2015-8-25 21:23
我的好好看看,,指针哪里没有学好
作者: 翟宇浩    时间: 2015-8-27 21:59
这种写法很明晰
作者: 翟宇浩    时间: 2015-8-27 22:02
这种写法很明晰




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