请教老师,看看这个代码错误的原因
题目:输入一个整数,如12336544,或1750,然后从最后一位开始倒过来输出,最后如果是0,则不输出,输出的数字是不带重复数字的,所以上面的输出是456321和571。如果是负数,比如输入-175,输出-571。
输出提示string字符串越界。
怎么解决这个问题啊?
输出提示string字符串越界。
#include<iostream>
#include <string>
using namespace std;
string daoxu(string s)
{
int c=0;
string t="";
string::size_type i=0;
while (s[i]=='0')
{
i++;
}
t=t+s[i];
i++;
for(;i<s.size();i++)
{
for(string::size_type p=0;p<t.size();p++)
{
if(s[i]==t[p])
{
c=1;
break;
}
}
if(c!=1)
{
t=t+s[i];
}
c=0;
}
return t;
}
int main()
{
string num,t="";
char f;
cin>>num;
if(num[0]=='-')
{
f=num[0];
for (string::size_type i=num.size()-1;i>0;i--)
{
t=t+num[i];
}
cout<<f<<daoxu(t)<<endl;
}
else
{
for (string::size_type i=num.size()-1;i>=0;i--)
//问题好像出在这里,当i减为零之后继续循环,这时断点调试中显示i的值变成了 42949677292,
//然后继续循环就越界了,这是什么原因啊?
{
t=t+num[i];
}
cout<<daoxu(t)<<endl;
}
}怎么解决这个问题啊?
...全文
相关推荐
郝斌老师c语言视频配套大纲
最后,提到的技术问题中指出,由于OCR技术(Optical Character Recognition,光学字符识别)的原因,文档中的个别字符可能存在识别错误或者漏识别的情况。
郝斌C语言教程源代码
同时,源代码可能还包括错误处理和调试技巧,这些都是实际编程中必不可少的部分。
给李老师的一封信作文.doc
**反馈与沟通**:作者希望得到老师的回信,这反映了有效的反馈和沟通对于学习的重要性。在IT工作中,无论是代码审查还是项目进度汇报,及时、清晰的沟通都能确保工作的顺利进行。
选择VC 作为开发工具的原因
**实践是最好的老师**:理论知识虽然重要,但在实际编程中应用这些知识同样重要。通过参与具体的项目,可以将学到的知识转化为实践经验,这对加深理解非常有帮助。
许老师电桥资料_许老师电桥_许老师电桥资料_原理图_
许老师的调试资料可能提供详细的步骤,帮助用户避免常见的错误,确保电桥的正常运行。其次,原理图是理解电桥工作原理的关键。在原理图中,可以看到电桥的电路布局,包括电阻、电感、电容、放大器等组件的连接方式。


新手乐园
