数组
字符串长度
定义:'\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