C语⾔中通过分隔符来截取字符串
1 #include <stdio.h>怎么截取列表中的字符串
2 #include <string.h>
3
4void reqorder(char *input,char *output,int counter)
5 {
6int i=0, j=0;
7char *p=input;
8char *buf=NULL;
9
10while((char)(*p)!='\0')
11    {
12if((char)(*p)=='?')
13        {
14if(i==counter)
15            {
16                buf=p+1;
17while((char)(*buf)!='\0' && (char)(*buf)!='?')
18                {
19                    j++;
20                    buf++;
21                }
22                strncpy(output,p+1,j);
23return;
24            }
25            i++;
26        }
27        p++;
28    }
29 }
30
31int main()
32 {
33char ch[32]="a?b?c?12?34?56?";
34char a[8];
35    memset(a,0,8);
36    reqorder(ch,a,1);
37    printf("%s\n", a);
38return0;
39 }
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *str = "id1=0&id2=0&id3=%E4%BA%8C%E4%BB%BD&id4=1c&&_=1541475472570";
int i,n,m;
char *p=str;
char p1[32]={0};//不能⽤char *p1=NULL;
char p2[32]={0};//不能⽤char *p2=NULL;
for(n=0,i=0;i<strlen(p);i++)
{
if(*(p+i)=='=')
{
if(n==2)
{
i++;
for(m=0;*(p+i)!='&';i++,m++)
{
*(p1+m)=*(p+i);
}
printf("%s\n",p1);
}
if(n==3)
{
i++;
for(m=0;*(p+i)!='&';i++,m++)
{
*(p2+m)=*(p+i);
}
printf("%s\n",p2);
}
n++;
}
}
return0;
}
运⾏结果
#include <stdio.h>
#include <string.h>
char *reporder(char *input, int n)
{
printf("enter reporder function\n"); int i = 0;
static char output[32] = "\0";
if(n==1)
{
while (*(input + i) != '')
{
*(output + i) = *(input + i);            i++;
}
}
return output;
}
void main()
{
char str[32]="hello 1 world 2";
printf("str=%s\n",reporder(str, 1)); return;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。