发布网友 发布时间:2022-04-22 03:47
共3个回答
热心网友 时间:2024-04-18 13:24
这个你只能写个循环自己判断了,示例代码如下
char str[] = "<1,2>,<3,4>,<4,5>";追问如果是的话没法转化成11的
热心网友 时间:2024-04-18 13:24
#include <ctype.h>
#include <stdio.h>
int databuf[256];
int split_int(char *str)//字符筛选函数
{
int count=0;
while(*str!=0)
{
if(isalnum(*str))
{databuf[count]=*str-'0';
count++;
str++;
}
else
{
str++;
}
}
return count;
}
int main(void)
{
char str[]="<1,2>,<3,4>,<5,6>,<7,8>";
int i,j;
j=split_int(str);
for(i=0;i<j;i++)
printf("%d=%d\n",i,databuf[i]);
return 0;
}
追问如果是的话是不好用的
追答
/* */
#include "Stdio.h"
#include "Conio.h"
int databuf[256];
typedef enum{FALSE,TRUE} BOOL;
int split_int(char *str)
{
BOOL bStartNum=FALSE;/*标记数字开始*/
BOOL bEndNum=FALSE; /*标记数字结束*/
int tmp;
int count=0;
while(*str>0)
{
if(*str>='0'&&*str<='9')
{
if(bStartNum==FALSE)
{bStartNum=TRUE;
bEndNum=FALSE;
tmp=*str-'0';
}
else
{tmp=tmp*10+*str-'0';}
}
else
{
bEndNum=TRUE;}
if(bStartNum==TRUE&&bEndNum==TRUE)
{
databuf[count]=tmp;
bStartNum=FALSE;
count++;}
str++;
}
return count;
}
int main(void)
{
char str[]="<1,2>,<3,4>,<5,6>,<7,8>,<11,11>,<123,234>";
int i,j;
j=split_int(str);
for(i=0;i<j;i++)
printf("%d=%d\n",i,databuf[i]);
/* 此处添加你自己的代码 */
getch();
return 0;
}
热心网友 时间:2024-04-18 13:25
Cstring
str
=
"a
char:<abcdefgh>";
Cstring
m_First,m_second;
sscanf_s(str,
"%s<%s>",
&m_First,
&m_second);
大概就是这种意思。下面是百度百科里面关于sscanf的用法,你可以参考一下,很强大的。