我以前从未见过这个函数的调用char()。这是在哪里描述的,它是什么意思?此用法是此 cppreference.com 社区 wiki 页面上示例的一部分:https://en.cppreference.com/w/cpp/string/basic_string/resize:
short_string.resize( desired_length + 3 );
std::cout << "6. After: \"";
for (char c : short_string) {
std::cout << (c == char() ? '@' : c); // <=== HERE ===
}
Run Code Online (Sandbox Code Playgroud)
描述中的措辞对我来说也没有任何意义,我不明白它在说什么:
将附加字符初始化为
CharT().
在上下文中突出显示:
std::string::resize()方法的原因是尝试学习如何预先分配 astd::string以便在 C 函数调用中用作缓冲区char*。这可以通过首先std::string调用my_string.resize()函数来预分配 来实现。然后,您可以安全地&my_string[0]作为标准char*写入索引my_string.size() - 1。也可以看看:
这是一个用于版本号目录的简单程序。它无法编译,出现此错误:
不存在从“std::string”到“const char *”的合适转换函数
#include <iostream>
#include <stdio.h>
#include <io.h>
using namespace std;
int main() {
int max = 10, daily_patch = 0, monthly_patch = 0, yearly_patch;
cout << " Enter the yearly_patch Number : ";
cin >> yearly_patch;
for (int i = yearly_patch; i <= yearly_patch; i++) {
for (int j = 0; j < max; j++) {
for (int k = 0; k < max; k++) {
string str1 = to_string(i);
string str2 = to_string(j);
string str3 = …Run Code Online (Sandbox Code Playgroud) 我有一个函数string_to_char(),它试图给我一个字符串形式,我可以将它传递到我正在使用的库中,它想要char *(但我认为与 一起使用const char *,所以我一直在尝试两者)。
我编写的用于测试我的实现的代码string_to_char()如下:
#include <iostream>
const std::string endl = "\n";
char * string_to_char(std::string str)
{
return (char*) str.c_str();
}
int main()
{
std::string test1 = "Some test strin";
std::string test2 = "Some test string";
char * result1 = string_to_char(test1);
char * result2 = string_to_char(test2);
std::cout << "part1" << endl;
std::cout << result1 << endl;
std::cout << string_to_char(test1) << endl;
std::cout << "part2" << endl;
std::cout << result2 << endl; …Run Code Online (Sandbox Code Playgroud) 我需要将字符串传递给socket send()函数,该函数只接受char*.所以我在这里尝试转换它:
void myFunc(std::string str) //Taking string here const is good idea? I saw it on some examples on web
{
char *buf = str.c_str; //taking buf const is good idea?
std::cout << str;
}
int main()
{
const std::string str = "hello world";
myFunc(str);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
给出错误:
test.cpp:6:18: error: cannot convert ‘std::basic_string<_CharT, _Traits, _Alloc>::c_str<char, std::char_traits<char>, std::allocator<char> >’ from type ‘const char* (std::basic_string<char>::)()const’ to type ‘char*’
Run Code Online (Sandbox Code Playgroud) 这是我的代码:
rename("tmp.png", Filename);
Run Code Online (Sandbox Code Playgroud)
重命名函数中的第二个参数是一个字符串.(用户决定名称是什么)如何正确编码,以便将tmp.png重命名为用户输入的内容?
我的导师说要以某种方式使用c_str,但我不确定如何.
这是我的第一篇文章,让我知道,如果你很难理解,或者如果我以某种方式弄错了..