其他分享
首页 > 其他分享> > C语言工具函数

C语言工具函数

作者:互联网

---恢复内容开始---

根据步长切割字符串:strsplit
 1 /*************************************************
 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

 

---恢复内容结束---

根据步长切割字符串:strsplit
 1 /*************************************************
 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