函数: strcpy
原型: char * strcpy( char* _Dest, const char *_Source );
功能: 复制源串_Source到目标串_Dest所指定的位置, 包含NULL结束符。 不能处理源串与目标串重叠的情况。 函数返回_Dest值。
char * Strcpy( char* _Dest, const char *_Source )
{
assert((_Dest != NULL) && (_Source != NULL));
while( ( *_Dest++ = *_Source++) != '\0'){
NULL;
}
return _Dest;
}
*/
char * Strcpy( char* _Dest, const char *_Source )
{
assert((_Dest != NULL) && (_Source != NULL));
while(*_Source != '\0'){
*_Dest++ = *_Source++;
}
*_Dest = '\0';
return _Dest;
}
函数: strlen的实现代码
功能: size_t strlen( const char *_Str );
功能: 获取字符串长度, 字符串结束符NULL不计算在内。 没有返回值指示操作错误。
int Strlen( const char *_Str )
{
int length = 0;
assert(_Str != NULL);
while(*_Str++ != '\0'){
length++;
}
return length;
}
函数: strcat
原型: char * strcat( char *_Dest, const char *_Source );
功能: 将源串_Src字符添加到目标串_Dst后。 本函数不能处理源串与目标串重叠的情况。
char * Strcat( char *_Dest, const char *_Source )
{
assert((_Dest != NULL) && (_Source != NULL));
char *_Temp = _Dest;
while( *_Temp != '\0')
_Temp++;
while(*_Source != '\0'){
*_Temp++ = *_Source++;
}
*_Temp = '\0';
return _Dest;
}
char * Strcat( char *_Dest, const char *_Source )
{
assert((_Dest != NULL) && (_Source != NULL));
char *_Temp = _Dest;
while( *_Temp != '\0'){
_Temp++;
}
while((*_Temp++ = *_Source++ ) != '\0');
return _Dest;
}
函数说明: memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。
与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'/0'而结束
memcpy功能和memmove相同,但是memcpy中dest和source中的区域不能重叠,否则会出现未知结果。
返回值说明:返回指向dest的void *指针
附加说明: 指针src和dest所指的内存区域不可重叠
void *Memcpy(void* _Dest , const void* _Source, int count)
{
assert((_Dest != NULL) && (_Source != NULL));
char* str1 = (char*)_Dest;
char* str2 = (char*)_Source;
while(count--)
{
*str1++ = *str2++; //不对是否存在重叠区域进行判断
}
return _Dest;
}
void *Memset(void *src, int c, size_t count)
{
assert( NULL != src);
char* str = (char*)src;
while(count--){
*str++ = (char)c;
}
return src;
}
函数: strstr的实现
原型: char * strstr( char *_Str, const char *_SubStr );
功能: 在字符串_Str中查找_SubStr子串。 返回子串_SubStr在_Str中首次出现位置的指针。
如果没有找到子串_SubStr, 则返回NULL. 如果子串_SubStr为空串, 函数返回_Str值。
#include <stdio.h>
#include <assert.h>
#include <string.h>
char * Strstr( char *_Str, const char *_SubStr )
{
assert( _Str != NULL);
if(_SubStr == NULL)
return _Str;
int i = 0;
int j = 0;
int flag = 1;
int str1_len = strlen(_Str);
int str2_len = strlen(_SubStr);
while( (i < str1_len) && (j < str2_len))
{
if(_Str[i] == _SubStr[j]){
i++;
j++;
flag = 1;
}
else{
j = 0;
i++;
flag = 0;
}
}
if(flag == 0){
return NULL;
}
else if(flag == 1){
return (_Str + i - j);
}
}
int main()
{
char str1[] = "abcdef";
char str2[] = "ccde";
printf("%s\n", Strstr(str1, str2) );
return 0;
}
函数说明:memmove用于从source拷贝count个字符到dest,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中。
返回值说明:返回指向dest的void *指针
void *Memmove(void *dest, const void *src, size_t count)
{
assert( (dest!=NULL)&&(src!=NULL) );
char *tmp_dest=(char*)dest;
char *tmp_src=(char*)src;
if( (tmp_dest + count < tmp_src) || (tmp_src + count < tmp_dest) )
{// 如果没有重叠区域
while(count--)
*tmp_dest++=*tmp_src++;
}
else
{// 如果有重叠区域
tmp_dest+=count-1;
tmp_src+=count-1;
while(count--)
*tmp_dest--=*tmp_src--;
}
return dest;
}
分享到:
相关推荐
C语言字符串处理函数整理版本,包含字符串基本操作,字符串类型转换、字符检查、输入输出流、输入输出流分割、异常处理等
还有一点值得引起注意:当你引用 strsafe 系列函数时,原有的 C 语言字符串处理函数都将被自动进行 #undef 处理。这也没问题,因为调试过程中的出错信息将会告诉你哪些函数已经被相应的 strsafe 系列函数取代了。好...
c语言字符串处理函数.pdf
c语言字符串处理函数[参考].pdf
C语言字符串替换函数strrpl支持中文汉字,解决含中文汉字,可能替换错误的情况。支持GBK、GB18030字符串。
完全版C和C++字符串处理函数,很全的啊!!
C语言字符串处理函数归总(比较全)[归类].pdf
C语言学习-字符串处理函数 strcat(char str1,char str2) strcpy(char str1,char str2) strncpy(char str1,char str2,int n) strcmp(char str1,char str2)//比较两个字符串大小str1>str2返回值>0,str1=str2...
C语言对字符串处理的函数扩展,比如实现了子串截取,查找返回index值等
C语言中字符串相关处理函数归总,含bcmp、bcopy、bzero、memccpy等等常见及不常见函数用法说明
C语言字符串函数大全C语言字符串函数大全C语言字符串函数大全C语言字符串函数大全
C语言字符串函数大全C语言字符串函数大全C语言字符串函数大全C语言字符串函数大全C语言字符串函数大全C语言字符串函数大全C语言字符串函数大全C语言字符串函数大全C语言字符串函数大全C语言字符串函数大全C语言字符...
C语言字符串操作函数.docx
这是通过查找资料整理的C语言关于字符串处理的函数,比较全,平常可供查阅用
该文档是本人自己整理的C语言中对字符串处理的一些系统api,,有些经常使用,有些不常使用,但是要是能够记住,相信肯定很有帮助
Mid Mid(string,start,length) 从string字符串的start字符开始取得length长度的字符串,如果省略第三个参数表示从start字符开始到字符串结尾的字符串 Left Left(string,length) 从string字符串的左边取得length长度...
下面介绍8种基本的常用的字符串处理函数,在数值数组中也常常用到(部分函数)。所有的C语言编译系统中一般都提供这些函数。
字符串连接就是将一个字符串连接到另一个字符串的末尾,使其组合成一个新的字符串,在字符串处理函数中,strcat 函数具有字符串连接功能。下面是用C语言实现不使用是strcat 函数实现连接两个字符串的功能。 源代码:...