C语言工具函数
作者:互联网
---恢复内容开始---
根据步长切割字符串:strsplit1 /************************************************* 2 *函数功能:使用newstr替换oldstr,若newstr为空,则表示删除 3 *参数str:待处理的字符串 4 *参数oldstr:旧字符串 5 *参数newstr:新字符串(可传NULL) 6 *返回值:返回处理得到的字符串 7 *备注:调用需包含string.h 8 *************************************************/ 9 char *strrpc(char *str,char *oldstr,char *newstr) 10 { 11 char bstr[1024] = {0};//转换缓冲区 12 int i = 0; 13 14 if(!str||!oldstr) return NULL; 15 for(i=0;i<strlen(str);i++) 16 { 17 if(!strncmp(str+i,oldstr,strlen(oldstr))) 18 {//查找目标字符串 19 if(newstr!=NULL) {strcat(bstr,newstr);}//newstr参数若为NULL,则表示删除字符串 20 i += strlen(oldstr)-1; 21 }else{ 22 strncat(bstr,str+i,1);//保存一字节进缓冲区 23 } 24 } 25 26 strcpy(str,bstr); 27 return bstr; 28 } 29 30 /************************************************/ 31 //用例:将FF0C替换成002C,并删除00 32 /************************************************/ 33 #include <stdio.h> 34 #include <string.h> 35 36 char *strrpc(char *str,char *oldstr,char *newstr) 37 { 38 char bstr[1024] = {0};//转换缓冲区 39 int i = 0; 40 41 if(!str||!oldstr) return NULL; 42 for(i=0;i<strlen(str);i++) 43 { 44 if(!strncmp(str+i,oldstr,strlen(oldstr))) 45 {//查找目标字符串 46 if(newstr!=NULL) {strcat(bstr,newstr);}//newstr参数若为NULL,则表示删除字符串 47 i += strlen(oldstr)-1; 48 }else{ 49 strncat(bstr,str+i,1);//保存一字节进缓冲区 50 } 51 } 52 53 strcpy(str,bstr); 54 return bstr; 55 } 56 57 int main() 58 { 59 char str[] = "00630065006E007400650072FF0C0061FF0C0031003200330034003500360023"; 60 char str_tmp[80] = {0}; 61 62 printf("%s\n",str); 63 64 strrpc(str,"FF0C","002C"); 65 strrpc(str,"00",NULL); 66 67 printf("\n%s\n",str); 68 69 return 0; 70 }替换字符串:strrpc
---恢复内容结束---
根据步长切割字符串:strsplit1 /************************************************* 2 *函数功能:使用newstr替换oldstr,若newstr为空,则表示删除 3 *参数str:待处理的字符串 4 *参数oldstr:旧字符串 5 *参数newstr:新字符串(可传NULL) 6 *返回值:返回处理得到的字符串 7 *备注:调用需包含string.h 8 *************************************************/ 9 char *strrpc(char *str,char *oldstr,char *newstr) 10 { 11 char bstr[1024] = {0};//转换缓冲区 12 int i = 0; 13 14 if(!str||!oldstr) return NULL; 15 for(i=0;i<strlen(str);i++) 16 { 17 if(!strncmp(str+i,oldstr,strlen(oldstr))) 18 {//查找目标字符串 19 if(newstr!=NULL) {strcat(bstr,newstr);}//newstr参数若为NULL,则表示删除字符串 20 i += strlen(oldstr)-1; 21 }else{ 22 strncat(bstr,str+i,1);//保存一字节进缓冲区 23 } 24 } 25 26 strcpy(str,bstr); 27 return bstr; 28 } 29 30 /************************************************/ 31 //用例:将FF0C替换成002C,并删除00 32 /************************************************/ 33 #include <stdio.h> 34 #include <string.h> 35 36 char *strrpc(char *str,char *oldstr,char *newstr) 37 { 38 char bstr[1024] = {0};//转换缓冲区 39 int i = 0; 40 41 if(!str||!oldstr) return NULL; 42 for(i=0;i<strlen(str);i++) 43 { 44 if(!strncmp(str+i,oldstr,strlen(oldstr))) 45 {//查找目标字符串 46 if(newstr!=NULL) {strcat(bstr,newstr);}//newstr参数若为NULL,则表示删除字符串 47 i += strlen(oldstr)-1; 48 }else{ 49 strncat(bstr,str+i,1);//保存一字节进缓冲区 50 } 51 } 52 53 strcpy(str,bstr); 54 return bstr; 55 } 56 57 int main() 58 { 59 char str[] = "00630065006E007400650072FF0C0061FF0C0031003200330034003500360023"; 60 char str_tmp[80] = {0}; 61 62 printf("%s\n",str); 63 64 strrpc(str,"FF0C","002C"); 65 strrpc(str,"00",NULL); 66 67 printf("\n%s\n",str); 68 69 return 0; 70 }替换字符串:strrpc
标签:函数,oldstr,C语言,char,str,字符串,工具,NULL,newstr 来源: https://www.cnblogs.com/q10040/p/11691359.html