string.h函数族
#include<string.h>
char* strcpy(char* dest,const char* src)
功能:实现字符串的复制
参数:dest 目标字符串的首地址;src源字符串的首地址
返回值:目标字符串的首地址
注意:复制的是整个字符串,包括\0
char* strncpy(char* dest , const char* src,size_t n);
复制字符串的前n个字符
#include<string.h>
size_t strlen(const char *s);
功能:计算字符串长度;除了'\0';
参数:要计算的字符串首地址;
返回值:字符串长度
#include<string.h>
char* strncat(char* dest , const char* src , size_t n);
功能:用于字符串拼接;
参数:dest:目标字符串的首地址;src源字符串的首地址
返回值:目标字符串的首地址
char *strncat(char *dest, const char *src, size_t n);
拼接字符串的前n个字符
#include <string.h>
int strcmp(const char *s1, const char *s2);
功能:用于字符串比较
参数:要比较的字符串的首地址
返回值: int strncmp(const char *s1, const char *s2, size_t n);
int strncmp(const char *s1, const char *s2, size_t n);
比较字符串的前n个字符
直接实现strlen
int main()
{
char str[32]={0};
char *p=str;
printf("input str: ");
gets(str);
int num=0;
while(*p)
{
num++;
p++;
}
printf("%ld\n",num};
return 0;
}
用函数实现my_strlen
#include<stdio.h>
int my_strlen(char *s)
{
int num =0;
while(*s != '\0')
{
num++;
s++
}
return num;
}
int main()
{
char str[32]={0};
printf("input str: ");
gets(str);
int len = my_strlen(str);
printf("%d",len);
return 0;
}
直接实现strcpy
#include<stdio.h>
int main()
{
char str[32];
printf("input str: ");
gets(str);
char *p=str;
char str1[32];
printf("input str1: ");
gets(str1);
char *q=str1;
while(*q)
{
*p=*q;
p++;
q++;
}
*p=*q;
puts(str);
return 0;
}
用函数实现my_strcpy
#include<stdio.h>
void my_strcpy(char *dest,char *src)
{
while(*src != '\0')
{
*dest =*src;
dest++;
src++;
}
*dest=*src;
}
int main()
{
char arr[32]={};
char *p=arr;
printf("input arr: ");
scanf("%s",arr);
char buf[32]={};
char *q=buf;
printf("input buf:");
scanf("%s",buf);
my_strcpy(p,q);
printf("%s\n",p);
return 0;
}
直接实现strcat
#include<stdio.h>
int main()
{
char arr[32]={};
char *p=arr;
printf("input arr: ");
scanf("%s",arr);
while(*p)
{
p++;
}
char buf[32]={};
char *q=buf;
printf("input buf:");
scanf("%s",buf);
while(*q)
{
*p=*q;
p++;
q++;
}
*p=*q;
puts(arr);
return 0;
}
用函数实现my_strcat
#include<stdio.h>
char* my_strcat(char* dest,char *src)
{
while (*dest)
{
dest++;
}
while(*dest++ = *src++)
*dest = *src;
return dest;
}
int main()
{
char arr[32]={};
char *p=arr;
printf("input arr: ");
scanf("%s",arr);
char buf[32]={};
char *q=buf;
printf("input buf:");
scanf("%s",buf);
my_strcat(arr,buf)
puts(arr);
return 0;
}
直接实现strcmp
#include<stdio.h>
int main()
{
char arr[32]={};
char *p=arr;
printf("input arr: ");
gets(arr);
char buf[32]={};
char *q=buf;
printf("input buf:");
gets(buf);
while(*p !='\0' &&*p == *q)
{
p++;
q++;
}
int num;
num = *p-*q;
if(num==0)
printf("same\n");
if(num >0)
printf("%d\n",num)
if(num <0)
printf("%d\n"num);
return 0;
}
函数实现my_strcmp
#include<stdio.h>
int* my_strcmp(char*s1,char *s2)
{
while(*s1 && *s1 == *s2)
{
s1++;
s2++;
}
if(*s1>*s2)
return 1;
if(*s1<*s2)
return -1;
return 0;
}
int main()
{
char arr[32]={};
char *p=arr;
printf("input arr: ");
gets(arr);
char buf[32]={};
char *q=buf;
printf("input buf:");
gets(buf);
int ret =my_strcmp(arr,buf);
printf("%d",ret);
printf("\n");
return 0;
}