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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我是菜鸟ios 中级黑马   /  2016-1-3 21:19  /  966 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*

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;


sizeof的用法
1》当小括号里为数据类型或者一般变量时,不同的编译系统得到的结果可能是不同的,例如int类型在16位系统下2个字节,32位和64位下占4个字节
2》小括号中为数组或者指针时,int a[5];sizeof(a)=4*5=20,求的是数组的总字节数;
     int *a=new int[5],sizeof(a)=4,求得是指针所占的大小,为4个字节
3》小括号中为结构和类时,用在这两种情况下,要注意以下几点:
a,结构或者类中的静态成员不对结构或者类的大小产生影响,因为静态变量的存储位置与结构或者类的实           例地址有关
b,没有成员变量的结构或者类的大小为1,因为必须保证结构或者类的没一个实例在内存中都有唯一的地址

1 个回复

倒序浏览
海棠依旧2046 来自手机 中级黑马 2016-1-3 22:23:54
沙发
加油,兄弟们棒棒的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马