Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c++;用于反转字符串的函数';行不通 学习C++。下面的函数是我尝试反转字符串(不起作用,我不知道为什么)。谢谢你发现我的愚蠢 #include <iostream> using namespace std; string r(string s) { int len = s.length(); for (int i = 0; i < len; i++) { char temp = s[i]; s[i] = s[len - i]; s[len - i] = temp; } return s; } int main() { cout << r("ASTRING"); } #包括 使用名称空间std; 字符串r(字符串s) { int len=s.length(); 对于(int i=0;i_C++ - Fatal编程技术网

c++;用于反转字符串的函数';行不通 学习C++。下面的函数是我尝试反转字符串(不起作用,我不知道为什么)。谢谢你发现我的愚蠢 #include <iostream> using namespace std; string r(string s) { int len = s.length(); for (int i = 0; i < len; i++) { char temp = s[i]; s[i] = s[len - i]; s[len - i] = temp; } return s; } int main() { cout << r("ASTRING"); } #包括 使用名称空间std; 字符串r(字符串s) { int len=s.length(); 对于(int i=0;i

c++;用于反转字符串的函数';行不通 学习C++。下面的函数是我尝试反转字符串(不起作用,我不知道为什么)。谢谢你发现我的愚蠢 #include <iostream> using namespace std; string r(string s) { int len = s.length(); for (int i = 0; i < len; i++) { char temp = s[i]; s[i] = s[len - i]; s[len - i] = temp; } return s; } int main() { cout << r("ASTRING"); } #包括 使用名称空间std; 字符串r(字符串s) { int len=s.length(); 对于(int i=0;i,c++,C++,首先,string.length() 第二,你不需要移动整个字符串,你应该在中间停下来,不管长度是多少,i/2都会这样做 最后: 字符串r(字符串s) { int len=s.length()-1; 对于(int i=0;i-1;i--) { 温度推回(s[i]); } s=温度; 返回s;//或返回温度; } 在纸上或调试器中进行反转。哪些元素在循环的第一次迭代中被交换?哪些元素在最后一次迭代中被交换?您好,可能是s[len-i]超出了第一次迭代的范围。@Cool\u Cornflakes已经

首先,
string.length()
第二,你不需要移动整个字符串,你应该在中间停下来,不管长度是多少,i/2都会这样做

最后:

字符串r(字符串s)
{
int len=s.length()-1;
对于(int i=0;i
另一种简单的方法:

字符串r(字符串s)
{
int len=s.length();
字符串温度;
对于(int i=len-1;i>-1;i--)
{
温度推回(s[i]);
}
s=温度;
返回s;//或返回温度;
}

在纸上或调试器中进行反转。哪些元素在循环的第一次迭代中被交换?哪些元素在最后一次迭代中被交换?您好,可能是
s[len-i]
超出了第一次迭代的范围。@Cool\u Cornflakes已经以一种安全可靠的方式完成了这项工作。不要重新发明轮子,尤其是当它变成正方形时。问题是你要一直遍历字符串。你应该在中途停下来,否则你要全部交换,然后在遍历下半部分时将它们全部交换回来。@ CurryChansFlash以熟悉C++,你应该集中精力从标准库中了解你可以使用的设备。这样做更有效率,IMO.也可以通过调试程序逐行地执行代码。你会发现问题相当快。