yunshellext64 删不掉:c++小问题

来源:百度文库 编辑:高考问答 时间:2024/04/28 21:02:51
char a[4]="1+2"
有什么办法让b=1+2=3

char a[4] = "1+2";是对的
然后跟上楼一样int b = a[0] - '0' + a[2] - '0';

不过这样通用型差了,
int a1 = 0, a2 = 2;
sscanf(a, "%d+%d", &a1, &a2);
b = a1 + a2;
这样就好了,不过这里数组a的大小只有4

这里涉及到数据类型的强制转换问题。
你可以试一下。数据类型的强制转换,比如你所写
char A[4]="1+2";那么A[0]=“1”、A[1]=“+”、A[2]=“2”、A[3]=“0”。
你可以再设一个整型数int Result;
Result=int(A[0])+int(A[2]);这样就可以。
在C中支持数型的强制转换,C++中就更可以了。

好像应该是char a[4]={"1+2"};
int b=a[0]-'0'+a[2]-'0';

b=a[0]+a[2];