字符串函数——strcpy 、strncpy 、strcat、 strncat、 strcmp 、strncmp、 memcpy、 memmove)
来源:互联网 发布:centos keepalived nfs 编辑:程序博客网 时间:2024/06/06 09:23
1.strcpy
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include<windows.h>#include<assert.h>#include<string.h>char* my_strcpy(char *dest, const char *scr){ char *ret=dest; assert(dest); assert(scr); while(*dest++=*scr++) { ; } return ret; }int main(){ const char str1[5]="abcd"; char str2[5]={0};printf("%s\n",my_strcpy(str2,str1)) ; system("pause"); return 0;}
2.strncpy
#include <stdio.h>#include<windows.h>#include<assert.h>#include<string.h>char *my_strncpy( char *dest, const char *src, int len ){ char *ret=dest; assert(dest); assert(src); while(len&&*src) { *dest++=*src++; len--; } /*if(len!=0) { while(len) { *dest++='\n'; len--; } }*/ return dest;}int main(){ char string[50]="I am a student!"; const char str1[3]="he"; const char str2[3]="is"; const char str3[10]="teacher"; my_strncpy(string,str1,2); my_strncpy(string+2,str2,2); my_strncpy(string+7,str3,7); printf("%s\n",string); system("pause");return 0;}
3.strcat
#include <stdio.h>#include<windows.h>#include<assert.h>#include<string.h>char *my_strcat( char *dest, const char *src ){ char *ret=dest; assert(dest); assert(src); while(*dest) { *dest++; } while(*dest++=*src++) { ; } return ret;}int main(){ const char str1[]= "you are"; char str2[]=" a teacher"; printf("%s",my_strcat(str1,str2)); system("pause"); return 0;}
4.strncat
#include <stdio.h>#include<windows.h>#include<assert.h>#include<string.h>char *my_strncat(char *dest,const char *src,int count){ char *ret=dest; assert(dest); assert(src); while(*dest){ dest++; } while(count&&(*dest++=*src++)){ count--; } return ret;}int main(){ char str1[20]="hello"; my_strncat(str1," world",6); printf("%s\n",str1); system("pause"); return 0;}
5.strcmp
#include <stdio.h>#include<windows.h>#include<assert.h>#include<string.h>int My_strcmp( const char *str1, const char *str2){ assert(str1); assert(str2); while(*str1!='\0'&& *str2!='\0') { if(*str1==*str2) { str1++; str2++; } if(*str1>*str2) { return 1; } if(*str1<*str2) { return -1; } if(*str1=='\0'&&*str2!='\0') { return -1; } if(*str2=='\0'&&*str1!='\0') { return -1; } return 0; }} int main(){ const char *str1="student!"; const char *str2="teacher!!"; if( (My_strcmp(str1, str2))==0) { printf("两个字符串相等\n"); } if( (My_strcmp(str1, str2))==1) { printf("str1大于str2\n");} if((My_strcmp(str1, str2))==-1) { printf("str1小于str2\n"); }system("pause");return 0;}
6.strncmp
#include <stdio.h>#include<windows.h>#include<assert.h>#include<string.h>int My_strncmp( const char *str1, const char *str2, int len ){ assert(str1); assert(str2); while(len--) { while(*str1!='\0'&& *str2!='\0') { if(*str1==*str2) { str1++; str2++; } if(*str1>*str2) { return 1; } if(*str1<*str2) { return -1; } if(*str1=='\0'&&*str2!='\0') { return -1; } if(*str2=='\0'&&*str1!='\0') { return -1; } return 0; }}}int main(){ const char *str1="student!!"; const char *str2="teacher!!"; if( (My_strncmp(str1, str2,2))==0) { printf("两个字符串相等\n"); } if( (My_strncmp(str1, str2,2))==1) { printf("str1大于str2\n");} if((My_strncmp(str1, str2,2))==-1) { printf("str1小于str2\n"); }system("pause");return 0;}
7、memcpy
#include <stdio.h>#include<windows.h>#include<assert.h>#include<string.h>void *my_memcpy( void *dest, const void *src, size_t count ){ char *ret=dest; while(count--) { assert(dest); *(char*)dest = *(char *)src; dest = (char*)dest + 1; src = (char *)src + 1; } return dest;}int main(){ const char *str1="student!!"; char str2[]="abcdefg"; int num=0; printf("befor:%s\n",str1); printf("please enter:"); scanf("%d",&num);printf("%s\n",my_memcpy( str2, str1, num ));system("pause");return 0;}
8.memmove
#include <stdio.h>#include<windows.h>#include<assert.h>#include<string.h>void *my_memmove( void *dest, const void *src, size_t count ){ assert(src); if (dest <= src || (char*)dest >= ((char*)src + count)) { while (count--) { assert(dest); *(char*)dest = *(char *)src; dest = (char*)dest + 1; src = (char *)src + 1; } } else { (char*)dest = (char*)dest + count - 1; (char *)src = (char *)src + count - 1; while (count--) { *(char*)dest = *(char *)src; dest = (char*)dest - 1; src = (char *)src - 1; } } } int main() { char *src = "AABCDE"; char dest[] = "AAAAABBBB"; printf("befor: %s\n",dest); my_memmove(dest, src, strlen(src) + 1); printf("enter: %s", dest); system("pause"); return 0; }
阅读全文
1 0
- 字符串函数——strcpy 、strncpy 、strcat、 strncat、 strcmp 、strncmp、 memcpy、 memmove)
- 字符串函数(strcpy strncpy strcat strncat strcmp strncmp memcpy memmove)
- 模拟实现strcpy,strncpy,strcat,strncat,strcmp,strncmp,memcpy,memmove
- 模拟实现strcmp,strncmp,strstr,strcat,strncat,strcpy,strncpy,strlen ,memcpy,memmove等函数
- 字符串函数模拟实现之strcpy、strncpy、strcmp、strncmp、strcat、strncat
- 模拟实现strcpy 模拟实现strncpy 模拟实现strcat 模拟实现strncat 模拟实现strcmp 模拟实现strncmp 模拟实现memcpy 模拟实现memmove
- C中的strcpy()、strcat()、strcmp()、strncpy()、strncat()、strncmp()
- 字符串常用操作(strlen,strcpy,strcat,strcmp,strncpy,strncat)
- strlen(),strcpy(),strncpy(),strcat(),strncat(),strcmp(),strncmp()等函数的实现
- C函数:strlen,strcat,strncat,strcmp,strncmp,strcpy,strncpy,strstr详解
- strcpy、strcat函数源码,strncpy,strncat,strncmp,strtok
- strcat、strcmp、strcpy、strncpy、memset、memcpy、memmove和atoi函数源码
- 字符串处理函数的模拟实现(strlen、strstr、strcat、strcmp、strcpy、memmove、memcpy)
- 字符串函数模拟实现(strcpy,strcat,strstr,strchr,strcmp,memcpy,memmove)
- 字符串库函数strlen,strcmp,strcpy,strncpy,strcat,strncat自定义实现
- 理解strcat、strncat、strcpy、strncy、strcmp、strncmp。
- 模拟实现strcpy,strcmp,strstr,strncpy,strncmp,strcat,strlen函数
- 自定义实现字符串处理函数 strlen strcmp strcpy strncpy strcat strncat strchr strstr
- APP 微信支付,服务端处理
- GCC的-fno-builtin选项
- 七层中反射+配置文件的使用
- hashmap与hashtable区别
- Javascript回调(一):简述
- 字符串函数——strcpy 、strncpy 、strcat、 strncat、 strcmp 、strncmp、 memcpy、 memmove)
- UVA
- Windows将py文件关联到pythonw.exe
- Altium Designer PCB设计规则中英对照
- 测试小故事30:软件测试会消失吗
- UVA
- SSDB及phpssdbadmin环境环境搭建(Ubuntu 14 )
- JNI例子
- 笔记_经典的冒泡法