string怎样做加减法

来源:百度知道 编辑:UC知道 时间:2024/05/28 14:18:27
char str[40]="200";
int i=strlen(str);
str[i]=str[i]+1;
我想得到201,可是现在输出的值是2001,请问如何改正?

怎么也不可输出2001, 应该是200口 <-这里是一个框

原因是由于strlen(const char*)求的是字符串长度
而字符串又是以0开始的,因此 str[i] 是200后面一位\0

所以改成下面这样 i=strlen(str)-1;就可以了

char str[40]="200";
int i=strlen(str)-1;
str[i]=str[i]+1;
printf("%s\n",str);

按照你想要实现的程序,应该这样改:
#include<stdio.h>
#include<string>

void main()
{
char str[40]="200";
int i=strlen(str);
int a=atoi(str)+1;
itoa(a,str,10);
printf("%s",str);
}
我用的VC6编译器调试通过,你自己对照一下吧。

从你题目的字面理解是进行字符串对应的算术运算:
string类型本身是不能直接做加减法的,需要将string中的每一位转化为对应的数字(通常是将串转化为数字数组),然后才能进行算术运算 !
比如字符串的加法:
s1:='1234';
s2:='123';
要先把字符串s1的各位字符倒序存入数组a1中,即a1[1]:=4; a1[2]:=3; a1[3]:=2; a1[4]:=1;
同样把字符串s2的各位变换后存入数组a2中,即a2[1]:=3; a2[2]:=2; a2[3]:=1;
然后对数组a1、a2的下标一致的元素相加(当然要考虑进位)......就可实现串相加。

若你的题目不是上面的意思,而是指字符串的拼接、组合运算,那就简单了