IOS之c语言笔记 day07

day01

c语言基础

字符串

  • 使用字符数组存储字符串

    或者使用char类型的指针来表示字符串

    char a[] = “123”; // 默认有\0结尾

    字符数组必须以\0结尾要不然很危险

    char a [] = {‘1’,’2’,’3’};的区别,可以比较大小

printf();把数组传入时仅仅是一个警告

  • 字符串默认都是有\0 == 在字符数组中使用\0结尾

  • 不是任何字符数组都是字符串,但是字符串可以使用字符数组来存储

    // 字符串的声明
    // "itcast.cn"
    // 别指定长度
    // 默认有一个隐藏的\0结尾
    // 定义方式一
    char scholName[] = "itcast.cn";
    
    // 定义方式二
    char name[5] = {'z','z','g','\0'};
    
    // printf 中只接受常量
    printf("name = %s\n",scholName);
    
    // char scholName[] = "itcast.cn"; 常量
    char countryName[] = "china";
    // 传递常量
    printf("%s\n",countryName);
    printf("china2\n");
    

%s 输出字符串(字符数组)
从指定的地址开始一个一个的输出字符,直到\0结束

strlen 字符串处理函数

  • 计算字符串长度
  • 计算的是字符数,并不是字数。一个汉字算作3个字符
  • 计算的字符不包括尾部的、0
  • 声明在string.h文件中
  • 从某个地址的开始数字符的个数,直到遇到\0为止
  • OC中的字符串都是以@开头

字符串练习

不使用指针。4种实现方式

// 编写一个函数char_contains(char str[],char c),如果字符串str中包含字符c则返回数值1,否则返回数值0

int str_contains(char str[],char key)
{
    for (int i = 0; i < strlen(str); i++) {
        // 如果ASCII值相同就存在
        if(str[i] == key){
            return 1;
        }
    }
    return 0;

}

int main()
{
    int result = str_contains("itcast.com",'q');
    printf("result = %d\n",result);
    return 0;
} 
示例代码:
#include <string.h>
#include <stdio.h>

// 可读性 -> 性能 -> 精简(重构)
// 定义方法的声明
int char_contains(char str[], char c);

int main()
{
    //int result = char_contains("itc8ast", '8');

    char name[] = "itcast";

    int result = char_contains(name, 'o');

    printf("%d\n", result);
    return 0;
}

// "itc"  '7'  方法的定义
int char_contains(char str[], char c)
{
    int i = -1;

    /*
     i  3
     str[++i] 'c'
     c  '7'
     */

    // 1.遍历整个字符串
    // 不满足的时候才会进行循环,条件满足,循环结束
    // i的位置记录的就是满足的条件的位置
    while ( str[++i] != c && str[i] != '\0' ) ;

    // 根据记录的位置取出值
    //return str[i] == '\0' ? 0 : 1;
    return str[i] != '\0';
} 

字符串数组

// 长度要包含\0的2个长度
char names[2][5] = {"zzg","szg"};
char names2[2][5] = {
    {'z','z','g','\0'},
    {'y','d','z','\0'}
};
printf("names[0] = %s\n",names[0]);
printf("names2[0][1] = %c\n",names2[0][1]);

指针

OC里面用的是指针

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值