在strlwr()中使用字符串数据类型
Using string data type in strlwr()
在strlwr
中使用string
作为数据类型时遇到问题,例如:
string a;
cout << "Enter a":;
cin >> a;
strlwr(a);
突然我犯了一个错误!
"[错误]C:\Users\PC\Documents\C-Free\Temp\Untitled7.cpp:7:E2285在函数main()中找不到匹配的'_lstrlwr(string)'"
谁能解决这个问题?
代码中的第一个问题是,您有一个额外的双qoutes "
string a;
cout<<"Enter a":"; cin>>a;
// ^ this is extra
strlwr(a);
编写此代码的正确方法是
string a;
cout << "Enter a :";
cin >> a;
strlwr(a);
很好地使用空格可以帮助您发现此类错误,但在这种特殊情况下,语法高亮显示非常有用。
此外,不能将std::string
传递给strlwr()
——它不需要字符串,而是char *
指针,或者更准确地说是c字符串。
这不是标准函数,如果您关心可移植性,则必须使用标准函数/方法。
要直接在string
对象上执行此操作,可以尝试如下
#include <iostream>
#include <string>
int
main(void)
{
std::string example = "ExAmPle";
for (size_t i = 0 ; i < example.size() ; ++i)
{
char character = tolower(example[i]);
example[i] = character;
}
std::cout << example;
return 0;
}
strlwr
不是C++库的一部分&因此它不起作用。您可以使用:-
for (char &ch:a)
{
ch = tolower(ch);
}
还有另一种方法可以让链接器找不到_lstrlwr。我在Embarcadero®C++Builder 10 Seattle版本23.02061822.753上,并且经常出现这样的问题,尤其是在打乱了新项目中头文件的顺序之后。
暂时关闭预编译的头文件,直到项目更加稳定。我来这里是因为我也有一个丢失的_lstrlwr,以及其他的抱怨。关闭PCH解决了所有这些问题。
相关文章:
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- 具有多个模板的模板函数,用于特定数据类型(如字符串)?
- C++将 wwn 字符串转换为识别为十六进制的数据类型
- 无法在 c++ 中将字符串分配给字符串数据类型
- 是否可以用类似C/C++(或任何语言)的语言,从作为用户输入的字符串或文件中创建用户定义的数据类型
- 基于给定字符串数据类型的链表删除节点
- 如何将两个 jlong 数据类型转换为 jstring,然后将两个字符串连接在一起以便从 JNI 将字符串返回给 jav
- 返回字符串和不同向量数据类型的映射C++
- 添加字符串向量和不同数据类型向量的映射
- 字符串中单个字符作为数组的数据类型是什么
- 将元音与字符串数据类型的字符串分开,并将其存储在新字符串中
- 有没有办法通过 zeromq pub 子C++发送字符串以外的数据类型
- C++:在字符串数据类型中创建单词"letter after letter"
- 字符串数据类型变量初始化
- 在C 中使用字符串数据类型的问题
- zipcode应该存储为字符串数据类型的两个原因
- 由于PROTOBUF服务器中的字符串数据类型变量和客户端通过cpp中recv端的套接字进行通信,因此正在获取segfau
- 在strlwr()中使用字符串数据类型
- 我想通过使用字符串数据类型而不是char类型来获得多行
- 如何对模板中的字符串数据类型执行几组不同的指令