第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > C语言 string.h头文件

C语言 string.h头文件

时间:2023-08-01 22:26:57

相关推荐

C语言 string.h头文件

C标准要求在使用字符串函数时要包含头文件string.h在使用字符函数时包含头文件 ctype.h

1.puts(字符数组)-----输出字符串

将一个字符串或字符数组指针输出到终端,在输出时将字符串结束标志 '\0' 转换成 '\n' ,即输出完字符串后换行。

而且puts函数输出的字符串中可包含转义字符(也就是说puts会遍历执行字符串中每个字符)。

#include<stdio.h>#include<string.h>int main(){char str[]={"china beijing"};char str1[]={"china\nbeijing"};char str2[]={"china\0beijing"};puts(str);puts(str1);puts(str2);return 0;}

输出结果:

2.gets(字符数组)-----输入字符串

将字符串从终端赋值到字符数组,并得到字符数组的起始地址为函数的返回值。

将字符串送给指定字符数组会送给 输入内容+‘\0’(结束符)。

#include<stdio.h>#include<string.h>int main(){char str[]={"china beijing"};char *temp;temp=gets(str);puts(str);//输出字符数组或字符数组指针 puts(temp);printf("%d\n",sizeof(str));//系统会自动为赋值的字符数组加'\0' printf("%d",strlen(str));return 0;}

输出结果:

3.strcat(字符数组1,字符数组2)-----字符串连接

将字符数组中字符连接起来,把字符数组2中内容顺次传递到字符数组1中,并返回数组1的地址

数组1必须足够大才能容纳连接后的新字符串

连接前两个字符串的后面都有 '\0' ,连接时将字符串1后面的 '\0' 取消,只在新生成的串后保留 '\0'

#include<stdio.h>#include<string.h>int main(){char str[]={"china beijing"};char str1[]={"janpan"};char *temp;temp=strcat(str,str1);printf("%s\n",temp);printf("%d\n",strlen(str));return 0;}

输出结果:

4.strcpy(字符数组1,字符数组2) 和strncpy(字符数组1,字符数组2,int)-----字符串复制

strcpy将字符数组2整个复制到字符数组1中

strcpy将字符数组2的内容加上 '\0'一起复制到数组1中,但其余字符还是数组1原有字符,且默认 '\0' 为空

​​​​​​

#include<stdio.h>#include<string.h>int main(){char str[]={"chinaabeijing"};char str1[]={"janpan"};char *temp;temp=strcpy(str,"qwert");printf("%s\n",temp);printf("%d\n",strlen(str));printf("%d\n",sizeof(str));for(int i=0;i<sizeof(str);i++){printf("%c",str[i]);}return 0;}

输出结果:

strcpy(str1,str2):将str2中内容复制到str1中

strncpy(str1,str2,n):将str2中前n位送给str1中

共同的是:str1数组必须足够大,能够承载str2数组复制给str1的内容

不同的是:strncpy只会把 str2 中的前 n 位给 str1,不会把str2的前 n 位的内容加上 '\0'一起复制到数组1中

#include<stdio.h>#include<string.h>int main(){char str[]={"chinaabeijing"};char str1[]={"janpan"};char *temp;temp=strncpy(str,"qwert",2);printf("%s\n",temp);printf("%d\n",strlen(str));printf("%d\n",sizeof(str));for(int i=0;i<sizeof(str);i++){printf("%c",str[i]);}return 0;}

输出结果:​​​​​​​

​​​​​​​​

5.strcmp(字符数组1,字符数组2)-----字符串比较大小

将每位按照 ASCLL码大小去比较,并返回 int 值

intstrcmp(*str1,*str2):

(1)str1==str2,函数==0

(2)str1>str2,函数==正数

(3)str1<str2,函数==负数

6.其他常用函数

int strlen(*str)-----测量字符数组的字符串长度

char * strlwr(*str)-----将字符数组中字符串转化为小写

char * strupr(*str)-----将字符数组中字符串转化为大写

案例:

#include<stdio.h>#include<string.h>int main(){char str[]={"ASDQijing"};char *temp=strlwr(str);printf("%s\n",strlwr(str));printf("%s",temp);return 0;}

​​​​​​​char * strchr(char *str,int ch)-----找出str字符串中第一次出现字符ch的位置的指针

char * strstr(char *str1,char *str2)-----找出str2字符串在str1字符串中第一次出现位置,并返回指针

​​​​​​​

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。