OC-scanf、const...

1、scanf函数的特殊用法

        char ch[100];
        NSLog(@"请输入一个字符串:");
        scanf("%s", ch);
        printf("%s\n", ch);
        char ch1;
        NSLog(@"请输入一个字符");
        scanf("%*[^\n]");//清除键盘缓冲区中\n以前的所有字符
        scanf("%*c");//只能清除键盘缓冲区中的一个字符
        scanf("%c", &ch1);
        NSLog(@"%c", ch1);

        char str[5];
        NSLog(@"请输入一个字符串(最多只能输入4个字符):");
        scanf("%4s", str);//%4s保证最多只输入4个字符
        printf("%s\n", str);

2、const关键字

        const int a = 10;//const能将变量a变成只读的
        //a = 20;
        int *p1 = &a;
        *p1 = 20;
        NSLog(@"a=%d, *p1=%d", a, *p1);

        int b = 30;
        const int *p2 = &b;
        //*p2 = 40;//const将指针指向的变量变成只读的
        int c = 50;
        p2 = &c;
        NSLog(@"%d", *p2);

        int* const p3 = &b;
        *p3 = 60;
        //p3 = &c;//const将指针本身变成了只读的

        const int* const p4 = &b;
//        *p4 = 70;
//        p4 = &c;

3、数值型数据与字符串之间的转换

        //数值型数据转换成字符串
        int i = 12345;
        char buffer[100];
        sprintf(buffer, "%d", i);
        printf("%s\n", buffer);

        double d = 3.1415926;
        sprintf(buffer, "%.7lf", d);
        printf("%s\n", buffer);

        unsigned long int ul = 9876543210;
        sprintf(buffer, "%lu", ul);
        printf("%s\n", buffer);

        //字符串向数值型数据的转换
        char *data = "54321";
        sscanf(data, "%d", &i);
        NSLog(@"%d", i);

        data = "2.6845319";
        sscanf(data, "%lf", &d);
        NSLog(@"%.7lf", d);

4、可变长参数

#import <Foundation/Foundation.h>

void printArg(int num, ...)
{
    va_list vap;
    va_start(vap, num);

    for (int i = 0; i < num; i++)
    {
        int arg = va_arg(vap, int);
        printf("%d ", arg);
    }
    printf("\n");

    va_end(vap);
}

//写一个可变长参数,求所有变长参数的和
int sum(int num, ...)
{
    va_list vap;
    va_start(vap, num);

    int sum = 0;
    for (int i = 0; i < num; i++)
    {
        sum += va_arg(vap, int);
    }

    va_end(vap);
    return sum;
}

int main()
{
    @autoreleasepool {
        NSLog(@"Hello world!");
        NSLog(@"%d", 10);
        NSLog(@"%d, %g", 10, 3.14);

        printArg(3, 10, 20, 30);
        printArg(6, 11, 22, 33, 44, 55, 66);

        NSLog(@"%d", sum(3,1,2,3));
    }
    return 0;
}

5、日期和时间

        clock_t t = clock();
        NSLog(@"%lu", t);

        clock_t begin = clock();
        for (int i = 0; i < 2100000000; i++)
        {
            ;
        }
        clock_t end = clock();
        NSLog(@"%lg秒", (end - begin) * 1.0 / CLOCKS_PER_SEC);

        time_t t1;
        time(&t1);//获取当前日历时间
        NSLog(@"%s", ctime(&t1));

        char buffer[100];
        strftime(buffer, 100, "%Y%m%d%H:%M:%S 星期%w", localtime(&t1));
        printf("%s\n", buffer);

6、OC的字符串

#import <Foundation/Foundation.h>

void print(NSString *str)
{
    NSLog(@"%@", str);
}

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSLog(@"Hello, World!");

        char *str = "This is a string.";
        printf("%s\n", str);

        NSString *str1 = @"This is a string.";
        NSLog(@"%@", str1);
        NSString *str2;
        str2 = str1;
        str2 = @"This is another string.";
        print(str2);
    }
    return 0;
}

7、类与对象
类:是结构体的升级,用于定义变量
与结构体的区别
关键字不一样
成员变量前加下划线
有函数
类的对象(变量)只能定义在堆上,不能定义在栈上,且不需要释放
类中的属性(成员变量)不能在类外被操作,需要使用setter赋值,getter访问
对象:
是一种特殊的变量
对象与变量的区别是,对象可以调用类中的方法(函数)
对象也被称为实例,用类定义一个对象,又被称为类的实例化
分割文件,类的声明在.h文件中,类的方法(函数)实现在.m文件中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值