黑马程序员技术交流社区

标题: 关于基础测试中将英文句子首字母变成大写字母的问题 [打印本页]

作者: 李国华    时间: 2015-3-17 20:05
标题: 关于基础测试中将英文句子首字母变成大写字母的问题
网上的基本上是用数组的基本方法做的,因为指针学的不好,所以强行自己用指针,能运行,但不知有哪些可改进的地方,请大神指导一下
  1. #include <stdio.h>
  2. #include <ctype.h>
  3. int main() {
  4.     //定义数组
  5.     char s[100];
  6.     //定义指针p指向字符数组
  7.     char *p=(char*)s;
  8.     int i;
  9.     printf("请输入英文句子");
  10.     //输入英文句子
  11.     gets(s);
  12.     for(i=0;*(p+i)!='\0';i++)
  13.     {
  14.         *p=toupper(*p);
  15.         //判断是否为空字符
  16.         if(*(p+i)==' ')
  17.             *(p+i+1)=toupper(*(p+i+1));
  18.     }
  19.     //打印改变后的字符串
  20.     for(i=0;*(p+i)!='\0';i++)
  21.     {
  22.         printf("%c",*(p+i));
  23.     }
  24.     return 0;
  25. }
复制代码
多谢啦



作者: hellooc    时间: 2015-3-17 21:10
打印字符串可以用%s
作者: 仰望的繁华    时间: 2015-3-17 22:24
空字符的下一位 一定大写?  空格后面还是空格呢 ??
作者: 粘糊浆    时间: 2015-3-18 01:23
如上!~~~~~~~~~~~~
作者: 李国华    时间: 2015-3-18 07:44
仰望的繁华 发表于 2015-3-17 22:24
空字符的下一位 一定大写?  空格后面还是空格呢 ??

对哈,要加判断,谢谢啦




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