c语言 获取括号里的数据。

我有一串字符串,假设字符串为:"<1234>ilovechina.""<123>ilovechina.""<12>ilovechina."我想编写一个c代码,能够获取尖括... 我有一串字符串,假设字符串为:
"<1234> i love china."
"<123> i love china."
"<12> i love china."

我想编写一个c代码,能够获取尖括号里的数据,数字会变化,希望越简短越好,谢谢了,好的加分。
展开
 我来答
316977431
2011-07-29 · TA获得超过2102个赞
知道小有建树答主
回答量:474
采纳率:0%
帮助的人:731万
展开全部
楼上,万一里面有非数字的怎么办呢?- -
方法还是很多的!
方法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:
思路:自己简单实现匹配,用循环遍历字符串,找到第一个<后,记录位置,然后找到下一个>再记录位置,位置之间就是所得字符串!当然还有很多优秀的匹配算法,你可以去研究下!
White_MouseYBZ
2015-12-25 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6704万
展开全部

要考虑括号内不一定是数字,还要考虑括号内不全是数字和不在括号内的数字都不能选取。举例代码如下:

//#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里面就是你要的数字啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
clitoriscn
2011-07-29 · TA获得超过3628个赞
知道小有建树答主
回答量:3258
采纳率:0%
帮助的人:1535万
展开全部
用sscanf就可以实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Lsin30
2011-07-29 · 超过16用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:47.5万
展开全部
sscanf,或者正则表达式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式