C语言笔记——这都是些比较杂的东西了

C语言笔记——这都是些比较杂的东西了

字符数组

字符数组可以有以下几种初始化方式,选择自己喜欢的(也就是简便的来记一下就好了)。

int main()
{
    //初始化字符数组的每个元素
    str1[6] = {'P','o','k','e','r','\0'};
    
    //也可以不写元素个数
    str2[] = {'P','o','k','e','r','\0'};
    
    //使用字符串常量初始化字符数组
    str3[] = {"Poker"};
    
    //使用字符串常量初始化字符数组,可以省略大括号
    str4[] = "Poker";
}

处理字符串的函数

这一类函数主要被定义在 string.h 这个头文件中。

sizeof和strlen

这两个函数在之前就讲过了,在这里就再提一下。

#include<stdio.h>
#include<string.h>
int main()
{
    char str[] = "Poker";
    printf("sizeof is: %d",sizeof(str));
    printf("strlen is: %u",strlen(str));
    return 0;
}

结果,程序运行时输出的内容为:
sizeof is: 6
strlen is: 5
这就是他们的不同点之一,在之前我们说过,字符数组的最后一位是 \0 但是strlen是不计算这个的,但是 sizeof 是要计算的。

strcpy和strncpy

这两个函数都是字符串的拷贝,但是用法不一样。
strcpy([目标数组],[原始数组]);
strncpy([目标数组],[原始数组],[拷贝长度]);
就相当于两个一个是不受限制的拷贝,另一个是受限制的拷贝。
同时, strncpy 并不会自动追加一个 \0 需要自己去追加。

在使用拷贝函数的时候还应该注意,目标数组要足够大,至少要能够容纳原始数组,不然就会发生溢出。

strcat和strncat

这两个都是字符串的拼接。
这里的 strncat 在字符串最后会自动追加一个 \0

strcmp和strncmp

这个函数运行原理就是逐一对比两个数组的值
然后如果完全相等,返回值就是 0 ,如果不完全相等,就返回 非0数 但不一定是 1

二维数组的特点

在声明的时候,形式如:

int a[3][4]

这个意思就是声明了一个3行4列的数组,然后呢,在具体声明的时候写法可以按照如下来,方便看清,也方便日后debug...........

int a[3][4] = {{1,2,3,4},{2,3,4,5},{3,4,5,6}}

这样来声明多维数组既能保证在一行上的舒坦,又方便debug。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最全的iOS面试题及答案 iOS面试小贴士 ———————————————回答好下面的足够了-----------...
    大罗Rnthking阅读 998评论 0 2
  • 版权声明:本文为 gfson 原创文章,转载请注明出处。注:作者水平有限,文中如有不恰当之处,请予以指正,万分感谢...
    gfson阅读 3,251评论 0 6
  • 史上最全的iOS面试题及答案 iOS面试小贴士———————————————回答好下面的足够了----------...
    Style_伟阅读 2,465评论 0 35
  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 1,766评论 0 4
  • 孩子对大人的要求很低,你只要稍微给他一点儿肯定,笑容,他就很欢喜。相对于大人对孩子的诸多要求和严苛,孩子更单纯,更...
    遇见_2fdf阅读 179评论 0 0