string函数族
strcpy
#include <string.h>char *strcpy(char *dest, const char *src);
功能:实现字符串复制
参数:char *dest: 目标字符串首地址 要复制的位置(首地址)
const char *src:源字符串首地址 复制者的首地址
返回值:目标字符串首地址
strcpy会复制 \0
strncpy
char *strncpy(char *dest, const char *src, size_t n);
功能:复制前n个字符串参数:dest: 目标字符串的首地址 src:源的字符串的首地址 n:个数
返回值:目标字符串的首地址
strcat
#include<string.h>
char *strcchat(char *dest, const char *src);
功能:用于字符串拼接
参数:char *dest :目标字符串首地址
const char *src :源字符串首地址
返回值:目标字符串首地址
strncat
char *strncat(char *dest, const char *src, size_t n);
功能:拼接src的前n个字符参数:char *dest :目标字符串首地址
const char *src :源字符串首地址
size_t n:个数
返回值:目标字符串首地址
strcmp
#include <string.h>
int strcmp(const char *s1, const char *s2);
功能:用于字符串比较参数:s1 s2用于比较多字符串
返回值:ascii码值比较 两者相等 继续向后比较 如果不相等 返回s1-s2
s1>s2: >0
s2>s1: <0
s1=s2: 0
strncmp
int strncmp(const char *s1, const char *s2, size_t n);
功能:比较两个字符串前n个字符的大小
练习:
void fun(char *p)
{
p = (char *)malloc(32);
strcpy(p, "hello");
}
int main()
{
char *m = NULL;
fun(m);
printf("%s\n", m); //NULL
return 0;
}
输出结果: 段错误
改正:
返回值:
char * fun() //p=NULL
{
char *p = (char *)malloc(32);
strcpy(p, "hello");
return p;
}
int main()
{
char *m = NULL;
m=fun();
printf("%s\n", m); //hello
free(m);
m=NULL;
return 0;
}
传参:
void fun(char **p) //p=NULL
{
*p = (char *)malloc(32);
strcpy(*p, "hello");
}
int main()
{
char *m = NULL;
fun(&m);
printf("%s\n", m); //NULL
free(m);
m=NULL;
return 0;
}