关于字符串反转的问题
我得到以下输出:Olleh.hello,但无法弄清楚我要去哪里!
int main()
{
char hello[6] = "hello";
char temp[6];
unsigned int t = 0;
for(int i=strlen(hello)-1;i>=0;i--)
{
if(t<strlen(hello))
{
temp[t] = hello[i];
t++;
}
}
cout << temp;
return 0;
}
I get the following output: olleh�hello but can't figure out where I'm going wrong!
int main()
{
char hello[6] = "hello";
char temp[6];
unsigned int t = 0;
for(int i=strlen(hello)-1;i>=0;i--)
{
if(t<strlen(hello))
{
temp[t] = hello[i];
t++;
}
}
cout << temp;
return 0;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您需要在字符串末端的空终止器:
You need a null terminator at the end of the string:
您将问题标记为[C ++],因此这里是C ++反向字符串的方法:
在这里很难犯任何错误
you tagged the question as [C++], so here's C++ way to reverse string:
it's difficult to make any mistake here
您没有使用null终止
temp
(\ 0
),因此temp
不是有效的字符串,cout 不知道该怎么办。 您的问题将消失。
如果您添加: 循环之后,
You aren't terminating
temp
with a null (\0
), sotemp
isn't a valid string andcout
doesn't know quite what to do with it. Your problem will go away if you add:after the
for
loop.