---恢复内容开始---
根据步长切割字符串: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
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
34 #include
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
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
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
34 #include
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
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