今天认识了两个函数,字符数组

好久不摸C语言了。

C语言strcat(卡塔尔(قطر‎函数:连接字符串,strcat字符串

头文件:#include <string.h>

strcat(State of Qatar 函数用来连接字符串,其原型为:
char *strcat(char *dest, const char *src);

【参数】dest 为目标字符串指针,src 为源字符串指针。

strcat(卡塔尔(قطر‎ 会将参数 src 字符串复制到参数 dest 所指的字符串尾巴部分;dest
最终的扫尾字符 NULL 会被遮住掉,并在接连后的字符串的尾巴再扩张叁个NULL。

精心:dest 与 src 所指的内存空间不能够重叠,且 dest
要有丰裕的上空来包容要复制的字符串。

【再次回到值】重临dest 字符串起先地址。

###字符数组的定义:有必然顺序关系的几何个字符型变量的集聚,便是字符数组。能够是后生可畏维的,也得以是多维的。字符数组具有普通数组的质量,又有点异样的性质;

所以,在上学WIN32汇编的时候,比异常的大心被五个函数给唬住了:lstrcpy ,lstrcat

【实例】连接字符串并出口。

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

int main (void)
{
char str[80];
strcpy (str,”here “);
strcat (str,”is “);
strcat (str,”the “);
strcat (str,”xiaoz “);
puts (str);
return 0;

###字符数组的初步化:

在解热(BAIDU)上搜了生龙活虎晃,才理解它们的庐山真面目目竟然在C语言里!

}

出口结果:
here is the xiaoz

任何的语言字符串处理的函数都有数不清,c语言的字符串处理很麻烦。
(PS:留个标识,后边备用)

头文件:#include string.h strcat(卡塔尔(قطر‎ 函数用来连接字符串,其原型为: char
*strcat(char *dest, const char *…

:和日常数组肖似,每一种为数组成分赋值:

strcpy 原形:char *strcpy(char *str1,char *str2卡塔尔(قطر‎作用:将str2字符串复制到str1中;

char ch[4]={‘a’,’b’,’c’,’\0′};

strcat 原形:char *strcat(char *str1,char *str2)功效:把字符串str2连采纳str1后边,原“\0”被取消。

:使用字符串常量来赋值:

重回值都以:str1 .

char ch[10]={“abcdefghjk”};相当于: char
ch[10]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’j’,’k’,’\0′};

只顾:用字符串来开首化字符数组,字符串结尾以“\0”结尾,上面唯有十一个假名,但字符串隐含了玉陨香消标记\0,相当于11个字母,越界了。

例:

#include#includeint main()

{

char ch[10] ={“abcdefghk”};

printf(“%lu\n”,sizeof;

for (int i=0;i<sizeof/sizeof;i++)

printf(“%c\n”,ch[i]);

return 0;

}

此时ch[10]中蕴涵了10个假名,所以程序会报错,因为越界溢出,所以在
char[]={“ ”}中只可以存放9个字母;

###字符串

在C语言中,严峻的讲是没有字符串的,不管是原生的依然构造的数据类型,可是怎么在程序猿的心底是有字符串那个项目标,首先,我们精通C语言是叁个面向进度的一门语言,而基于C语言更加尖端的言语Ojective-C是面向对象的言语,而在高端语言中有字符串这意气风发种类,所以,在C语言中,技师能够透过字符数组模拟字符串。字符串指的是以’\0’作为完毕字符的意气风发组字符,由此把三个字符串存入数组时,也把“\0”存入数组,并以此作为该字符串是不是终止的注明;

只顾:字符串变量与日常的字符数组有必然的分歧;

字符串不足为怪管理函数

1.strlen

头文件:string.h

函数原型:size_t strlen(const char *s)

效能:求字符串的长短(不含字符串甘休标识’\0’)。

参数:s为字符串

重回值:字符串的尺寸(不含字符串截至标记’\0’)

strlen
函数测验字符串的实际上尺寸,并将该长度作为函数的值再次来到。函数参数“字符串”能够使字符串常量,也足以是字符变量,平常情势:int
length=strlen;

例:

#include <stdio.h>

#include <string.h>

int main()

{

char ch_1[ ]=”abc\n”;

char ch_2[ ]=” “;

printf(“ABC的长度:%d\n”,strlen;

printf(“ch_1的长度:%d\n”,strlen;

printf(“ch_2的长度:%d\n”,strlen;

return 0;

}

结果:

ABC的长度:3

ch_1的长度:4

ch_2的长度:0

”abc\n“长度为4,而非5,‘\n’被视作几个字符。”
“长度为0,是因为她是空字符串未有可行字符,所以长度为0;

2.strcpy

头文件:string.h

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注