语法错误String方法C ++

时间:2013-11-03 11:56:04

标签: c++ string methods syntax

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

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

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

标题代码:

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

using namespace std;

class texto{


public:
   string Mayusculas(string);

};

Cpp代码:

#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的第8行“string texto :: Mayusculas(string palabra){”

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

1 个答案:

答案 0 :(得分:1)

上一个回答/评论:   - 您似乎在字符串+ =是的字符串中添加了一个字符    意味着连接字符串......你可以尝试改变字符串    nueva_palabra行到nueva_palabra[i]=toupper(palabra[i]);,    但是,如果没有看到语法错误,很难看到在哪里    纠正这个。

要完成上述工作,您必须先将palabra的内容复制到nueva palabra才能访问第i个项目,否则正确指出,您很可能在代码中出错。

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