我正在尝试编写一个文本冒险游戏,我的代码存在一些问题。
此代码的目的是创建一个接收字符串变量并以大写形式返回的方法。
当我编译它时,我唯一的错误是语法错误,但我不知道它来自何处。
标题代码:
#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
答案 0 :(得分:1)
上一个回答/评论:
- 您似乎在字符串+ =是的字符串中添加了一个字符
意味着连接字符串......你可以尝试改变字符串
nueva_palabra
行到nueva_palabra[i]=toupper(palabra[i]);
,
但是,如果没有看到语法错误,很难看到在哪里
纠正这个。
要完成上述工作,您必须先将palabra的内容复制到nueva palabra才能访问第i个项目,否则正确指出,您很可能在代码中出错。
尽可能避免混合字符数组和字符串,你可以这样做,但如果你使用其中一个或另一个,那么字符串是一种更C ++习惯的做事方式字符数组是一种更惯用的方式