一步一步学编程之字符串处理函数(二)
来源:互联网 发布:jas37战斗机 知乎 编辑:程序博客网 时间:2024/05/22 01:28
功能:设置字符串前n个字符为v
输入:字符串数组或指针、要改为的字符、改多少个
输出:更改后的字符串指针
说明:
void *_memset(const void *s, char v, size_t n)
{
char *ptmp = s;
if (n > strlen(s))
return NULL;
while (n--)
{
*ptmp = v;
ptmp++;
}
return s;
}
函数:memchr
功能:在字符串的前n个字符中寻找c,找到返回指向这个字符的指针
输入:字符串数组或指针、要寻找的字符、前多少个
输出:匹配的字符指针
说明:
void * _memchr(const void * buf, char c , size_t n)
{
const unsigned char *p = buf;
int len = strlen(buf);
while ((n-- != 0 ) && (len--!= 1))
{
if ((unsigned char)c == *p++)
{
return (void *)(p-1);
}
}
return NULL;
}
功能:比较两个字符串前n个字符是否相同
输入:两个字符串数组或指针
输出:相同返回0,前面的大返回1,后面的大返回-1
说明:
int _memcmp(const void *str1, const void *str2, size_t n){
const char *buf1, *buf2;
buf1 = str1;
buf2 = str2;
if (n == 0 && n > strlen(str1) && n > strlen(str2))
{
printf("The n is not right number!\n");
return 2;
}
while (n--)
{
if(*buf1 == *buf2)
{
if (n == 0)
return 0;
}
else if ((*buf1) > (*buf2))
return 1;
else if (*buf1 < *buf2)
return -1;
buf1++;
buf2++;
}
}
函数:memcpy
功能:把字符串str2中的前n个字符拷贝到str1中
输入:两个字符串数组或指针
输出:返回修改后的字符串指针
说明:
void *_memcpy(char *str1, const char *str2, size_t n){
char *buf1 = str1;
const char *buf2 = str2;
int len;
len = strlen(str2);
if(n == 0 && n > len)
return NULL;
while (n--)
{
*buf1 = *buf2;
buf1++;
buf2++;
}
return str1;
}
函数:_strrev
功能:字符串的反转
输入:字符串数组或指针
输出:返回修改后的字符串指针
说明:
char * _strrev(char *str)
{
char *head = str;
char *tail = str;
char ptmp;
int len = strlen(str);
while (--len)
{
tail++;
}
while (head < tail)
{
ptmp = *head;
*head = *tail;
*tail = ptmp;
head++;
tail--;
}
return str;
}
- 一步一步学编程之字符串处理函数(二)
- 一步一步学编程之字符串处理函数(一)
- 一步一步学编程之字符串处理函数(三)
- 一步一步学编程之Python(二)
- (二)、一步一步学GTK+之窗口
- (二)、一步一步学GTK+之窗口
- 一步一步学正则(二)
- 一步一步学Android(二)
- 一步一步学android控件(之二) —— TextView
- 一步一步学Remoting之二:激活模式
- 一步一步学Remoting之二:激活模式
- 一步一步学Remoting之二:激活模式
- 一步一步学Remoting之二:激活模式
- 一步一步学Remoting之二:激活模式
- 一步一步学Remoting之二:激活模式
- 一步一步学Remoting之二:激活模式
- 一步一步学编程之Python(一)
- 一步一步学编程之Python(三)
- Windows编程经典书
- 喜爱Sahi的10个理由
- JAVA学习三
- HDU 1240 Asteroids!
- HDU1466 计算直线的交点数
- 一步一步学编程之字符串处理函数(二)
- mtk android 预置apk
- 面向对象的5条基本设计原则
- svn基本命令详解
- unity开发shader中要用到的内置状态变量
- linux下常用FTP命令
- 一步步将vim改造成C/C++开发环境(IDE)
- Android NDK学习--第三方库的移植
- 我的GVim配置