-4

我正在尝试编写一个文本冒险游戏,但我的代码有一些问题。

这段代码的目的是创建一个接收字符串变量并以大写形式返回的方法。

当我编译它时,我唯一的错误是语法错误,但我不知道它来自哪里。

标头代码:

#include "stdafx.h"
#include <iostream>
#include <ctype.h>
#include <string>

using namespace std;

class texto{


public:
   string Mayusculas(string);

};

cp代码:

#include "Texto.h"
#include "stdafx.h"

using namespace std;

 string texto::Mayusculas(string palabra){

    int i;
    string nueva_palabra;
    for (i = 0; i < palabra.size(); i++){

         nueva_palabra += toupper(palabra[i]);

    }

    return nueva_palabra;
}

语法错误都在 cpp "string texto::Mayusculas(string palabra){" 的第 8 行

Error   6   error C2059: error de sintaxis : ')'
Error   7   error C2143: error de sintaxis : expected ';' after '{' 
Error   5   error C2146: error de sintaxis : expected ')' after 'palabra'
Error   3   error C2146: error de sintaxis : expected ';' after 'Mayusculas'
Error   8   error C2447: '{' : falta el encabezado de función (¿lista formal de     estilo anterior?)
Error   2   error C2653: 'texto' : no es un nombre de clase o espacio de  nombres   
Error   4   error C4430: falta el especificador de tipo; se presupone int.     Nota: C++ no 
Advertencia 1   warning C4627: '#include "Texto.h"': se omite al buscar el uso del encabezado precompilado
4

1 回答 1

1

以前的答案/评论: - 您似乎正在向字符串添加一个字符,其中字符串 += 用于连接字符串...您可以尝试将 nueva_palabra行更改为nueva_palabra[i]=toupper(palabra[i]);,但是如果没有看到语法错误,很难看到在哪里纠正这一点。

要进行上述工作,您必须先将 palabra 的内容复制到 nueva palabra,然后才能访问第 i 个项目,否则正如正确指出的那样,您的代码很可能会出错。

如果可能,尽量避免混合字符数组和字符串,你可以这样做,但如果你使用其中一个或另一个坚持这一点,字符串是一种更 C++ 惯用的做事方式,字符数组是一种更 C 惯用的方式。

于 2013-11-03T12:02:46.953 回答