leetcode做题知识点整理一

一、二维数组入参

参考https://blog.csdn.net/minzhimo4854/article/details/89303797

(1)方法一:简单干脆地传入二维数组名,对于实参,若为数组定义,需要强制转换;转换后利用一维数组的方式取数;若为动态内存申请,不需要强制转换;主要是在题目中出现时,需要知道如何处理,实际使用比较麻烦,不推荐

(2)方法二:直接传入数组,包含一维、二维长度,简单、直白,但是限制较多,不推荐

#define arrSize1 5
#define arrSize2 3
void PrintArrTwo2(int arrTwo[arrSize1][arrSize2]) {
	 printf("arrTwo = %d
", arrTwo[0][0]);
}
int main(void)
{
    int arrTwo[arrSize1][arrSize2];
    int arrSize = arrSize2;
    for (int i = 0; i < arrSize1; i++) {
        for (int j = 0; j < arrSize2; j++) {
            arrTwo[i][j] = i * arrSize2 + j;
        }
    }
    PrintArrTwo2(arrTwo);
    system("pause");
    return 0;
}

(3)方法三:固定低维,放开高维,既灵活又容易调用,推荐

void PrintArrTwo3(int arrTwo[][arrSize2], int arrSize) {
    printf("arrTwo = %d
", arrTwo[0][0]);
}
int main(void)
{
    int arrTwo[arrSize1][arrSize2];
    int arrSize = arrSize2;
	//TODO:其他处理

    PrintArrTwo3(arrTwo, arrSize);
    system("pause");
    return 0;
}

二、字符串的拼接-安全函数

(1)strcpy:字符串复制

(2)strcat:字符串拼接

(3)itoa:整数转化成字符

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define arrSize1 50
#define arrSize2 20
int main(void)
{
    char arrOne[arrSize1];
    char arrTwo[arrSize1] = "hao are you?";
    char arrThree[arrSize1] = "   I'm fine. Thanks
";
    int num = 100;
    char arrNum[arrSize1];
    //复制
    strcpy(arrOne, arrTwo);
    printf("%s
", arrOne);
    //拼接
    strcat(arrOne, arrThree);
    printf("%s
", arrOne);
    //数字转化成字符:入参为 数字,字符串地址,进制
    itoa(num, arrNum, 10);
    printf("%s
", arrNum);
    system("pause");
    return 0;
}

注: strcpy和strcat内部也是对字符的操作,以‘’作为字符串结束的标志。

原文地址:https://www.cnblogs.com/HZL2017/p/13258649.html