黑马程序员技术交流社区

标题: IOS大杂烩 [打印本页]

作者: 我是菜鸟ios    时间: 2016-1-3 21:19
标题: IOS大杂烩
/*

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,因为必须保证结构或者类的没一个实例在内存中都有唯一的地址


作者: 海棠依旧2046    时间: 2016-1-3 22:23
加油,兄弟们棒棒的




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