急:如何从含有特殊符号的字符串中提取出数字
我想从含有特殊符号的字符串中提取并返回数字,
如32:42:235:23::53:53
经处理提取出并返回32,42,235,23, “ ”,53,53
::之间虽然没有字符,但指定为输入为空,也要提取并返回的
我知道函数strtok是可以的,但是却不能识别::这种情况,会算做一次
[解决办法]
#define LEN 100 //长度和输入的字符串长度有关
char *Fun(char *ptr)
{
int i, count=0;
char *p =(char *)malloc(LEN);
*p = '\0 ';
i = strlen(ptr);
while(i--)
{
if(*ptr != ': ')
{
if(*ptr == ' ')
{
*p++ = ' " ';
*p++ = ' ';
*p = ' " ';
count += 3;
}
else
{
*p = *ptr;
count++;
}
p++;
ptr++;
}
else
{
*p++ = ', ';
count++;
ptr++;
}
}
*p = '\0 ';
return p-count;
}
main()
{
char *pCh;
pCh = Fun( "32:42:235:23: :53:53 ");
printf( "%s ", pCh);
}
上面的代码方法比较笨拙,但是效果不错,请楼主看看吧