字符串函数
1.puts和gets
puts函数:将1个以’\0’结尾的字符串输出到屏幕上。接收参数为字符指针或者数组名
gets函数: 从终端输入1个字符串到字符数组中,返回字符数组的首地址。接收参数为数组名
2.strcpy和strncpy
必须引入string.h头文件
#include #include
char *strcpy(char *dest,char *src);
char *strncpy(char *dest,char *src,int n);
strcpy:是string copy的缩写.返回值都是参数dest.
strcpy把src所指的以’\0’结尾的字符串复制到dest所指的数组中。
strncpy把src所指的以’\0’结尾的字符串的前n个字节复制到dest所指的数组中。
dest所指的数组必须足够大。复制时,连同字符串的’\0’一起被复制
不能将1个字符串常量或字符数组直接赋给另一个字符数组。字符串的复制只能使用strcpy strncpy或者其他功能类似的函数
下面是错误的 char a[] = "Linux C Program",b[20]; b = a;
strcpy存在安全漏洞,容易被黑客利用。一般应使用strncpy
示例: char *s = "Hello world"; char d1[20],d2[20]; strcpy(d1,s); strncpy(d2,s,sizeof(s));//sizeof(s)返回12
3.strcat和strncat
#include #include
char *strcat(char *dest,char *src);
char *strcat(char *dest,char *src,int n);
strcat是string catenate(字符串连接)的缩写。返回值都是参数dest.
strcat把src指向的字符串添加到dest结尾处覆盖dest结尾处的’\0’并添加’\0’
strcat也是有漏洞的,推荐使用strncat
数组名也是指针
4.strcmp和strncmp
#include #include
char *strcat(char *s1,char *s2);
char *strcat(char *s1,char *s2,int n);
strcmp是string compare的缩写
strncmp只对字符串的前n个字符进行比较,从左到右逐个字符进行比较,直到出现不同的字符或遇到’\0’;
如果全部的字符相同且长度也一样,则返回0表示相等;
如果出现不同的字符,不相同的字符相减,以多得的差作为返回值
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!