请注意,我确实添加了一个头文件strutils.h,我也在项目中复制了这个文件。 strutils.cpp已添加到源文件中,也已复制到Project文件夹中。
**我收到的错误如下:错误C2039:'ToLower':不是'std :: basic_string< _Elem,_Traits,_Alloc>'的成员 **
我在Astrachan出版的“计算机科学挂毯”一书之后开始编写代码,我确实多次检查了这本书,但没有结果。 (库strutils确实包含ToLower()函数)
我觉得我错过了很简单的事情。
以下是我的代码。
#ifndef _STRUTILS_H
#define _STRUTILS_H
#include <iostream>
#include <string>
#include "strutils.h"
using namespace std;
int main()
{
string boot = "Drimmnal";
boot.ToLower();
cin.ignore();
cin.get();
return 0;
}
#endif
答案 0 :(得分:2)
您尝试使用的功能是不标准库std::string
类的成员函数,因此您无法通过说boot.ToLower()
来调用它。该语法保留给成员函数。
此功能在您图书的支持材料中提供。它的签名为void ToLower(string & s);
。这是一个免费的函数,它通过引用获取std::string
,并且我认为,它会更改字符串。您将要像任何其他免费函数一样调用它并将其传递给std::string
变量。
变化:
boot.ToLower();
要:
ToLower(boot);
此外,您还要从源代码中删除以下行:
#ifndef _STRUTILS_H
#define _STRUTILS_H
和
#endif
这些行包括来自strutils.h
文件的警卫,我不确定它们是否在您的源文件中。