字符串函数、二维数组、1~n²数独

一、字符串函数

1.strlen()

size_t strlen(const char *str)

size_t 是C语言中的一种无符号整数类型. size_t 类型表示C中任何对象所能达到的最大长度

 计算字符串 str 的长度,直到空结束字符,但不包括空结束字符

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";
    int length = strlen(str);
    printf("字符串的长度为:%d\n", length);
    return 0;
}

输出结果为11

my_strlen.c

2.strcpy()

char *strcpy(char *dest, const char *src)
  • dest -- 指向用于存储复制内容的目标数组。
  • src -- 要复制的字符串。

 源字符串 src 中的内容将被复制到目标字符串 dest 中。复制操作会一直进行,直到遇到源字符串结尾的空字符 \0

3.strcmp()

int strcmp(const char *str1, const char *str2)

该函数返回值如下:

  • 如果返回值 < 0,则表示 str1 小于 str2。
  • 如果返回值 > 0,则表示 str2 小于 str1。
  • 如果返回值 = 0,则表示 str1 等于 str2。

当比较两个字符串时,会从字符串的第一个字符开始逐个比较,直到遇到不同的字符或者其中一个字符串结束。以下是比较字符串大小的规则:

  1. 如果两个字符串的对应字符完全相同,继续比较下一个字符。
  2. 如果遇到不同的字符,比较它们在 ASCII 表中的大小关系。
  3. 如果前面的字符相同,但一个字符串已经结束,结束的字符串被认为是较小的字符串。
  4. 如果两个字符串完全相同,则它们被认为是相等的。

 

 

二、二维数组

数据类型 数组名[行数][列数] = {
    { 元素1, 元素2, 元素3, ... },
    { 元素1, 元素2, 元素3, ... },
    ...
};

C语言中二维数组的 本质 是一维数组的一维数组

int a[3][4]           

int [4] a[3]    3个 int[4]               

int a[ ][4] ={1,2}  ,二维数组 行数可省略,列数不能省略

可以省略行数,但不能省略列数:编译器根据初始化时的实际元素个数来推断行数,但需要提供列数,以便为每一行分配正确的空间。

转置行列式

 

 三、魔鬼数

#include <stdio.h>
#include <strings.h>

int main(void)
{
	int n;
	printf("Input a num:");
	scanf("%d",&n);

	int a[n][n];

	bzero(a,n*n*sizeof(int));

	int k = 1;
	a[0][n/2] = k;
	int i = 0;
	int j = n/2;

	for (k = 2; k <= n*n; ++k)
	{
		int m = i;
		int g = j;

		++j;
		--i;

		if (i < 0)
		{
			i = n-1;
		}

		if (j > n-1)
		{
			j = 0;
		}

		if (a[i][j]!=0)
		{
			i = m;
			j = g;

			++i;

			if (i > n-1)
			{
				i = 0;
			}
		}

		a[i][j] = k;
	}

	for (i = 0; i < n; ++i)
	{
		for (j = 0; j < n; ++j)
		{
			printf("%d ",a[i][j]);
		}
		putchar('\n');
	}


	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值