C语言实现字符串处理及内存释放代码

代码语言:c

所属分类:其他

代码描述:C语言实现字符串处理及内存释放代码

代码标签: 字符串 处理 内存 释放

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//符串处理方面的,strcpy 函数容易越界,习惯使用 strncpy 函数,但此函数只管复制最多 n 个字符,并不会把末尾的字符自动修改为 '\0',所以给它加上这个操作
char* utils_strncpy (char *dest, const char *src, size_t length)
{
      strncpy (dest, src, length);
      dest[length] = '\0';
      return dest;
}
//内存分配函数 malloc 分配内存却不进行初始化,给它也加上初始化的操作:
void* utils_malloc (size_t size)
{
      void *ptr = malloc (size);
 
      if (ptr != NULL)
            memset (ptr, 0, size);
      return ptr;
}
//内存释放函数 free 只是释放内存,却不把指针置为空指针,而且对空指针执行 free 也不知道是否安全,于是改造如下:
void utils_free(void **p)
{
      if (p == NULL || *p == NULL)
            return;
 
      free(*p);
      *p = NULL;
}
//相应的有字符串复制函数:

char* utils_strdup (const char *ch)
{
      char *copy;
      size_t length;
 
      if (ch == NULL)
            return NULL;
      length = strlen (ch);
      copy = (char *) utils_malloc (length + 1);
      if (copy==NULL)
	    return NULL;
      utils_strncpy (copy, ch, length);
      return copy;
}
//把字符串中的大写字母改为小写:

int utils_tolower (char *word)
{
      size_t i;
      size_t len = strlen (word);
 
      for (i = 0; i <= len - 1; i++)
      {
            if ('A' <= word[i] && word[i] <= 'Z')
            word[i] = word[i] + 32;
      }
 
      return 0;
}
//清除字符串首尾的空白字符(空格,\r,\n,\r):
int utils_clrspace (char *word).........完整代码请登录后点击上方下载按钮下载查看

网友评论0