- /*
- main.m
- 输入英文语句,单词首字符转换大写后输出
- 分析:
- 如何判断英文语句里面,哪些是单词?空格两边得都是单词
- 如何判断单词的首字母为大写?*p>='A'
- 语句的首字母判断,
- 1)为空,继续循环
- 2)大写,继续循环
- 3)小写,转换为大写!(*p-32)
- 如果检测到了空格就使下一个字母变为大写!()
- 注意:
- gets() 和scanf()的区别
- 1.不同点:
- scanf不能接受空格、制表符Tab、回车等;
- 而gets能够接受空格、制表符Tab;
- 2.相同点:
- 字符串接受结束后自动加'\0'。
-
- *p 和 p 的区别
- p存放的是地址,
- *p是让程序去那个地址取出数据
- */
- #import <Foundation/Foundation.h>
- int main(int argc, const char * argv[]) {
- printf("请输入英文...\n");
- char a [100];
- char *p = a;
- gets(p);//scanf( "%[^\n]", c); 表示可以存放除了 \n 外的其他所有字符。
-
- //语句的首字母判断
- if(*p==' '){//是空格
- p++;
- }else if(*p>='A'&&*p<='Z'){//是大写
- p++;
- }else if(*p>='a'&&*p<='z'){
- *p-=32;//*p = *p-32
- p++;
- }
- while (*p!='\0') {//语句没结束,就循环
- if(*p!=' '){
- p++;
- }else if(*p ==' '){
- p++;
- if (*p>='a' && *p<='z') {
- *p-=32;
- }
- }
- }
- puts(a);//打印
- return 0;
- }
复制代码
|
|