c语言 获取括号里的数据。
我有一串字符串,假设字符串为:"<1234>ilovechina.""<123>ilovechina.""<12>ilovechina."我想编写一个c代码,能够获取尖括...
我有一串字符串,假设字符串为:
"<1234> i love china."
"<123> i love china."
"<12> i love china."
我想编写一个c代码,能够获取尖括号里的数据,数字会变化,希望越简短越好,谢谢了,好的加分。 展开
"<1234> i love china."
"<123> i love china."
"<12> i love china."
我想编写一个c代码,能够获取尖括号里的数据,数字会变化,希望越简短越好,谢谢了,好的加分。 展开
5个回答
展开全部
楼上,万一里面有非数字的怎么办呢?- -
方法还是很多的!
方法1:
使用下面的库函数,指定匹配格式就行,例如:
#include <stdio.h>
int main()
{
char* str="<1234> i love china.";
char buf[50];
sscanf(str,"%*<%[^>]",buf); //匹配的字符串
printf("%s\n",buf);
return 0;
}
方法2:
思路:自己简单实现匹配,用循环遍历字符串,找到第一个<后,记录位置,然后找到下一个>再记录位置,位置之间就是所得字符串!当然还有很多优秀的匹配算法,你可以去研究下!
方法还是很多的!
方法1:
使用下面的库函数,指定匹配格式就行,例如:
#include <stdio.h>
int main()
{
char* str="<1234> i love china.";
char buf[50];
sscanf(str,"%*<%[^>]",buf); //匹配的字符串
printf("%s\n",buf);
return 0;
}
方法2:
思路:自己简单实现匹配,用循环遍历字符串,找到第一个<后,记录位置,然后找到下一个>再记录位置,位置之间就是所得字符串!当然还有很多优秀的匹配算法,你可以去研究下!
展开全部
要考虑括号内不一定是数字,还要考虑括号内不全是数字和不在括号内的数字都不能选取。举例代码如下:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
char *a="<1234> i love china.<123> i love china.<12> i love china.";
int x,i,k;
for(i=0;a[i];i++)
if(a[i]=='<' && a[i+1]>='0' && a[i+1]<='9'){
sscanf(a+i+1,"%d%n",&x,&k);
printf("%d ",x);
i+=k;
}
printf("\n");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-07-29
展开全部
int i,k,nLen;
char a[100],b[20];
get(a);
nLen = strlen(a);
for(i=0,k=0;i<nLen;i++)
{
if(a[i]>='0' &&a[i]<='9')
{
b[k++] =a[i];
}
}
b[k]='\0';
b里面就是你要的数字啦
char a[100],b[20];
get(a);
nLen = strlen(a);
for(i=0,k=0;i<nLen;i++)
{
if(a[i]>='0' &&a[i]<='9')
{
b[k++] =a[i];
}
}
b[k]='\0';
b里面就是你要的数字啦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用sscanf就可以实现
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sscanf,或者正则表达式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询