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
#include
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。

你可能感兴趣的:(C语言笔记——这都是些比较杂的东西了)