Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.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++;“错误”;并非所有控制路径都返回一个值";_C++ - Fatal编程技术网

C++ C++;“错误”;并非所有控制路径都返回一个值";

C++ C++;“错误”;并非所有控制路径都返回一个值";,c++,C++,我试图通过调用函数来输出字符串的倒数。我想我的反转功能有问题。 我不断收到错误“并非所有控制路径都返回值” #包括 使用std::cout; 使用std::endl; 使用std::cin; int LengthofString(char*);//声明字符串长度的原型 倒整数(字符*); int main() { charstring1[100]; coutstring1; cout在reverse函数中,您在for循环内返回,如果满足条件,则可能不会执行。请尝试将return语句移到循环外 您

我试图通过调用函数来输出字符串的倒数。我想我的反转功能有问题。 我不断收到错误“并非所有控制路径都返回值”

#包括
使用std::cout;
使用std::endl;
使用std::cin;
int LengthofString(char*);//声明字符串长度的原型
倒整数(字符*);
int main()
{
charstring1[100];
coutstring1;

cout在
reverse
函数中,您
for
循环内返回
,如果满足条件,则可能不会执行。请尝试将return语句移到循环外


您的返回变量也在循环的作用域中声明,因此您也需要更改它,但这至少会修复您的原始错误。

reverse
函数中,您
for
循环中返回
,如果满足条件,可能不会执行该循环。请尝试将return语句移到循环


您的返回变量也在循环的作用域中声明,因此您也需要更改它,但这至少会修复您的原始错误。

当您传递空字符串或长度为1的字符串时,将不会执行以下
for
循环中的
return
语句

for(ii=0; ii<n/2;ii++) {
     char temp;
     temp = y[ii];
     y[ii] = y[n - ii - 1];
     y[n - ii] = temp;
     return temp;
}

for(ii=0;ii当传递空字符串或长度为1的字符串时,将不会执行以下
for
循环中的
return
语句

for(ii=0; ii<n/2;ii++) {
     char temp;
     temp = y[ii];
     y[ii] = y[n - ii - 1];
     y[n - ii] = temp;
     return temp;
}
for(ii=0;ii
int反转(char*y)
{
int ii,n;
n=长度管柱(y);
对于(ii=0;ii
int反转(char*y)
{
int ii,n;
n=长度管柱(y);

对于(ii=0;ii您的
reverse
函数是非常错误的:当您希望它反转字符串时,它如何返回
int
?有几种方法可以修复它:

  • 删除
    返回
    ,并使函数
    无效
    。打印前调用该函数,然后输出原稿
  • 使其返回
    char*
    ,并返回
    y
    。将
    return
    语句移出循环
  • 不要原地反转:制作字符串的副本并反转它;不要忘记为空终止符分配空间,并在完成后删除字符串的副本

您的
reverse
函数非常错误:当您希望它反转字符串时,它如何返回
int
?有几种方法可以修复它:

  • 删除
    返回
    ,并使函数
    无效
    。打印前调用该函数,然后输出原稿
  • 使其返回
    char*
    ,并返回
    y
    。将
    return
    语句移出循环
  • 不要原地反转:制作字符串的副本并反转它;不要忘记为空终止符分配空间,并在完成后删除字符串的副本

除了已有的优秀答案,让我来演示一下如何反转一个字符串<强> C++方式:/P>

#include <string>
#include <iostream>
#include <algorithm>

int main()
{
    std::string s;
    std::cin >> s;
    std::reverse(s.begin(), s.end());
    std::cout << s << std::endl;

    return 0;
}

除了已有的优秀答案,让我来演示一下如何反转一个字符串<强> C++方式:/P>

#include <string>
#include <iostream>
#include <algorithm>

int main()
{
    std::string s;
    std::cin >> s;
    std::reverse(s.begin(), s.end());
    std::cout << s << std::endl;

    return 0;
}

@SamIam什么?
for(ii=0;ii@SamIam(是时候让你的高人一等休息一下了。取消你的否决票,这是不公平的。)@H2CO3当for循环和
return
之间有一个分号时,
return index
怎么会在for循环中?@SamIam阅读了这段引文。我们谈论的是另一个循环。@SamIam What?
for(ii=0;ii@SamIam(是时候让你的高人一等休息一下了。取消你的否决票,这是不公平的。)@H2CO3当for循环和
return
之间有分号时,
return index
怎么会在for循环中?@SamIam阅读了这段引文。我们谈论的是另一个循环。不仅空字符串,长度为1的字符串也不会进入循环。不仅空字符串,长度为1的字符串也不会进入循环也输入循环。@H2CO3,在
reverse
中。实际上,如果
n
为0(或1,或以某种方式为负数),则for循环将不会执行,并将从函数结尾处运行。@chris,是的,当然。(你的人无法使用
-Wall
?)H2CO3,在
reverse
中。实际上,如果
n
为0(或1,或以某种方式为负数),for循环将不会执行,并将从函数末尾运行。@克里斯:哦,是的,当然。(你的人无法使用
-Wall
?)编译)我必须使用我自己的函数。@ BIDNATEDUCTION更新-您的代码仍然是C而不是C++。我必须使用我自己的函数。@ BIDNATE见Update——您的代码仍然是C而不是C++。
std::string reverseString(const std::string &input)
{
    std::string res;
    for (std::string::const_reverse_iterator it = input.rbegin(); it != input.rend(); it++)
        res += *it;

    return res;
}