我得到以下输出: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;
}
答案 0 :(得分:7)
在字符串的末尾需要一个空终止符:
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++;
}
}
temp[t] = '\0';
cout << temp;
return 0;
}
答案 1 :(得分:7)
你把这个问题标记为[C ++],所以这里是C ++反转字符串的方式:
#include <iostream>
#include <string>
#include <algorithm>
int main()
{
std::string hello = "hello";
std::reverse(hello.begin(), hello.end());
std::cout << hello << std::endl;
}
这里很难犯错误
答案 2 :(得分:3)
您没有使用null(temp
)终止\0
,因此temp
不是有效字符串而cout
不知道该怎么做用它。如果添加以下内容,您的问题就会消失:
temp[5] = 0;
在for
循环之后。