Java教程

内存操作函数

本文主要是介绍内存操作函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.strlen字符串求长度
//遇到\0停止
int len=strlen("abcdef");
printf("%d\n,len);

char arr[]={'a','b','c','d'};
int len = strlen(arr); //随机值 遇到f后面的\0停止

1.1如果要自己写一个strlen方法
a.计数器的方法
b.递归
c.指针-指针

#Include <stdio.h>
#include <assert.h>
int my_strlen(const char *str)
{
assert(str!=NULL); //判断是否是空指针
int count=0;
while(*str)
{
count++;
str++;
}
return count;
}

int mian(){
int len=strlen("abcdef");
}


1.2
if(strlen("abc")-strlen("abcdef)>0)
{
printf("1");
}
else
{
printf("0");
}

//返回的是无符号整数(两个strlen返回的都是无符号数,相减依然是无符号数) 所以是1
//默认返回类型的是size_t,用my_strlen()相减,返回类型是int返回 0


char* my_strcat(char *dest,const char * src)
{
char *ret=dest;
assert(dest);
assert(src);
//1.找到目的字符串的\0
while(dest)
{
dest++;
//2.追加字符串
while(*dest++==*src++)
{
;
}
}
}


strcmp比较两个字符串是否相等
strncat(arr1,arr2,4);在arr1后面,追加arr2的前四个字符,并且自动补\0

memory:内存拷贝
int arr1[]={1,2,3,4,5};
int arr2[5]={0};
memcpy(arr2,arr1,sizeof(arr1));

int arr[3]={1,2,3,4,5,6,7,8,9};
memmove(arr+3,arr,20);
可以将12345拷贝到原函数变成12123456789

 

这篇关于内存操作函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!