首页 > 其他分享 >day8——数组

day8——数组

时间:2024-07-31 21:56:05浏览次数:8  
标签:char day8 a1 数组名 a2 数组 字符串

数组

字符串长度

定义:'\0'前面字符的个数

例如:“hello”字符的长度是5个,所占的内存空间的字节数是6个。

字符串函数

注:用字符串函数时需要加头文件<string.h>

strlen函数

函数原型:size -t strlen(const char *s);

功能:计算字符串长度

参数s:表示的是需要一个指针;参数形式:可以是数组名/字符串常量

返回值:返回字符串长度

不用函数实现同样功能代码

#include<stdio.h>
int main(void)
{  
	int i=0;
	char  s[10]={}; 
	gets(s);

    while(s[i] != '\0')
	{
		++i;
	}
	printf("%d\n",i);
	return 0;
}

用函数 

#include<stdio.h>
#include<string.h>
int main(void)
{  
	int i=0;
	char  s[10]={}; 
	gets(s);
    printf("%ld\n",strlen(s));
	return 0;
}

结果

strcpy函数 

函数原型:char *strcpy(char *dest, const char *src)

功能:复制函数,将src中字符串复制到dest中

参数:

src(原字符串):

实参形式:一维字符型数组名/字符串常量

dest(目的字符串):

实参形式:一维字符数组名

不用函数实现复制功能:

#include<stdio.h>
#include<string.h>
int main(void)
{
	char a1[20];
	char a2[20];
	int i=0,j=0;
	gets(a1);
	while( a1[i] !='\0')
	{
      a2[i]=a1[i];
	  ++i;
	}
	a2[i]='\0';
	while(a2[i]=a1[i])
		++i;
	puts(a1);
	puts(a2);

	return 0;
}

结果:

 

strcat函数

函数原型:char *strcat(char *dest,const char *src);

功能:拼接字符串

参数:

dest (目的字符):

拼接到的那个位置,实参形式:一维字符型数组名

src(原字符串):

实参形式:一维字符型数组名/字符串常量

核心代码

    while(a1[i]!='\0')//定位
	  ++i;
	while(a2[j]!='\0')//查找
		{
				a1[i]=a2[j];
				++i;
				++j;
		}
	a1[i]='\0';

strcmp函数

函数原型:int strcmp(const char *s1,const char *s2)

功能:比较字符串大小

参数s1,s2:可以是数组名/字符串常量

返回值:s1>s2——>0

s1==s2——0

s1<s2——<0

核心代码

    while(a1[i]==a2[i] && a1[i]!='\0' && a2[i]!='\0')
		++i;
	if(a1[i]>a2[i])
		printf("a1>a2");
    else if(a1[i]>a2[i])
		printf("a1<a2");
	else
		printf("a1=a2");

二维数组

类型说明符 数组名[常量表达式1][常量表达式2]

类型说明符:用来说明数组中存储数据的类型,与一维数组中的一样

数组名——标识符

常量表达式1为行,表达式2为列

二维数组本质

注意:1.C语言中,并不存在真正的二维数组,都是用一维数组模拟的

2.二维数组的本质实际上就是一维数组类型的一维数组

3.二维数组数据存储时,按行优先存储

4.多维数组,n维数组就是n-1维数组类型的一维数组。

标签:char,day8,a1,数组名,a2,数组,字符串
From: https://blog.csdn.net/weixin_68641081/article/details/140821098

相关文章

  • 数组part01
    2024年7月31日,今日复习了数组的基础知识;巩固了二分法的写法,保证可以快速准确写出;学习了双指针的应用,双指针是为了让多个for循环压缩为一个循环,学习的时候尤其注意循环的写法。1.数组基础知识定义:数组是存放在连续内存空间上的相同类型数据的集合。几个特点:数组下标都是从0开......
  • 学习日记:一维字符型数组
    目录1.格式2.字符串长度3.字符数组的输入输出3.1gets函数3.2puts函数3.3scanf函数3.4printf函数4.字符串处理函数4.1strlen函数(计算数组长度)4.2strcpy函数(复制字符串)4.3strcat函数(拼接字符串)4.4strcmp函数(比较字符串)1.格式数据类型数组名[数......
  • 数组(二)———数组的排序算法①
    目录冒泡排序基本步骤:复杂度分析实现示例(Java):选择排序基本步骤:复杂度分析实现示例(Java):插入排序基本步骤:复杂度分析实现示例(Java):希尔排序基本步骤:复杂度分析实现示例(Java):归并排序基本步骤:复杂度分析实现示例(Java):冒泡排序定义:冒泡排序(BubbleSort)是......
  • 后缀数组学习笔记
    前言后缀数组(SuffixArray,简称SA)是一种解决某些字符串问题的常用工具。解决这些字符串问题时,经常用后缀数组对问题进行一定的转化成其它的模型,然后套用那个模型的解决方法加以解决原问题。附题单约定本文做以下约定:本文撰写时间跨度较大,有些符号会出现正体、斜体混用的情......
  • 树状数组 | 维护区间和
    1.树状数组的定义树状数组(BinaryIndexedTree,简称BIT)是一种数据结构,能够高效地进行前缀和查询和单点更新操作。树状数组常用于解决频繁的区间和查询问题。2.树状数组的构建树状数组使用一个数组BIT[]来维护数据,其中BIT[i]存储从某个位置到当前位置的区间和。构建树状数组的......
  • 2024-07-31:用go语言,给定两个正整数数组arr1和arr2,我们要找到属于arr1的整数x和属于arr
    2024-07-31:用go语言,给定两个正整数数组arr1和arr2,我们要找到属于arr1的整数x和属于arr2的整数y组成的所有数对(x,y)中,具有最长公共前缀的长度。公共前缀是指两个数的最左边的一位或多位数字相同的部分。例如,对于整数5655359和56554来说,它们的公共前缀是565,而对于1223和434......
  • 2024-07-31:用go语言,给定两个正整数数组arr1和arr2,我们要找到属于arr1的整数x和属于arr
    2024-07-31:用go语言,给定两个正整数数组arr1和arr2,我们要找到属于arr1的整数x和属于arr2的整数y组成的所有数对(x,y)中,具有最长公共前缀的长度。公共前缀是指两个数的最左边的一位或多位数字相同的部分。例如,对于整数5655359和56554来说,它们的公共前缀是565,而对于1223和43456来说......
  • 二维数组下载为excel(导出)
    /*导出*/ consts2ab=function(s){ constbuf=newArrayBuffer(s.length); constview=newUint8Array(buf); for(leti=0;i<s.length;i++)view[i]=s.charCodeAt(i)&0xFF; returnbuf; } constexportClick=asyncfunction(){ //多个组数据......
  • 数组加密问题例题day05
    importjava.util.Scanner;/* 某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密,加密规则如下:首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,最后将第一位和最后一位数字交换......
  • 树状数组
    树状数组一、单点修改和区间查询lowbit函数\[lowbit(x)=x\&(-x)\]作用:得到\(x\)二进制最右侧的1。如,\(x=(0010010011000)_2\),则\(-x=x取反+1=(1101101101000)_2\),\(x\&(-x)=(0000000001000)_2\)。原理用\(c[i]\)表示树状数组,\(a[i]\)表示原数组。将\(c[i]\)......