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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#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;
}


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

6 个回复

倒序浏览
确实这个要简单一点,看起来更容易懂
回复 使用道具 举报
tangbinbin 发表于 2015-8-25 15:40
确实这个要简单一点,看起来更容易懂

但是没有处理,第一个是空格的情况。。。
回复 使用道具 举报
*p -= 32,为何是第一个字母?
回复 使用道具 举报
我的好好看看,,指针哪里没有学好
回复 使用道具 举报
这种写法很明晰
回复 使用道具 举报
这种写法很明晰
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马