首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

小疑点一个,字符的处理

2012-03-09 
小问题一个,字符的处理如果我有一列数1,2,3,4,5,6;10如果我想表示第一个数+第二个数最后那个数我是不是可

小问题一个,字符的处理
如果我有一列数
1,2,3,4,5,6;10
如果我想表示
第一个数+第二个数=最后那个数
我是不是可以写
char buf[128];
int i=0;
buf[1]+buf[2]=buf[&';'+1]/*第一位的数字+第二位的=分号的位置+1的数字*/
如果这样表示可以的话(可能我写的大错特错),10是个两位数的数字,怎么读取呢。

不知道我的表述是否明白

[解决办法]

C/C++ code
#include <stdio.h>#define MAXN 100char s[] = "1,2,3,4,5,6;10";int buf[MAXN];char *p;int v,n,k,L,i,last;void main() {    p=s;    L=0;    i=0;    while (1) {        k=sscanf(p,"%d%n",&v,&n);        if (1==k) {            if (0==L) {                buf[i]=v;            } else {//1==L                last=v;                break;            }            p+=n;            if (';'==p[0]) L=1;            i++;            if (MAXN<=i) {                printf("Too many numbers (>%d) !\n",MAXN);                return;            }        } else if (0==k) {            p++;        } else {//-1==k            break;        }    }    n=i;    for (i=0;i<n;i++) printf("buf[%d]=%d\n",i,buf[i]);    printf("last=%d\n",last);}//buf[0]=1//buf[1]=2//buf[2]=3//buf[3]=4//buf[4]=5//buf[5]=6//last=10 

热点排行