C语言程序设计(27)

103 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第31天,点击查看活动详情
strcat

charstrcat(charrestrict s1,const char*restrict s2);

把s2拷贝在s1后面,接成一个长的字符串;

返回s1;

s1必须具有足够的空间。

安全问题

strcpy和strcat都可能出现安全问题,

如果目的地没有足够的空间?

安全版本

charstrncpy(charrestrict dst,const char *restrict src,size_t n);

charstrncat(charrestrict s1,const char*restrict s2,size_t n);

(n便是能最多能复制过去的空间数量)

int strncmp(const chars1,const chars2,size_t n);(n的作用是只比较字符串的前n个)

字符串中找字符

charstrchr(const chars,int c);(在字符串中从左边寻找c第一次出现的位置,返回的是指针,如果将起赋给*p做输出,则会输出包括c在内的后面的内容,而p指的是c)

charstrrchr(const chars,int c);(在右边找c第一次出现的位置)

返回NULL则表示没找到。

找第二个c?

image.png

结果为:

image.png

以第一次c出现的地方,将c及其以后的字符串接到另一个字符串后面?

image.png

结果为:

image.png

输出c第一次出现时以前的字符串

image.png

结果为:

image.png

字符串中找字符串

char*strstr(const char s1,const chars2);

char *strcasestr(const char s1,const chars2);(此种情况表示忽略大小写)

数据类型

枚举

枚举是一种用户定义的数据类型,用关键字enum以如下语法来声明:enum枚举类型名字{名字0,...,名字n}

枚举类型名字通常并不真的使用,需要的是在大括号里面的名字,因为它们就是常量符号,它们的类型是int,值依次为从0到n。如:enum colors{red,yellow,green}(创建三个常量,red值为0,...)