C++问题中要字符的字符串
Strings to Char in C++ Issues
我有这个代码:
string username;
string node;
string at;
string final;
struct passwd* user_info = getpwnam("mike");
struct utsname uts;
uname(&uts);
username = user_info->pw_name;
node = uts.nodename;
at = "@";
final = username + at +node;
i=strlen(final[0]);
char *pp = new char[i];
strcpy(pp,final);
fputs(pp, stdout);
我只想把这3个strings
转换成一个char*
。我知道我的代码完全错误,但我通过谷歌测试了很多东西。有人能帮帮我吗?
您只需要使用字符串::c_str()
string final;
const char *pp = final.c_str();
如果你需要在char*
而不是const char *
中获得字符串数据,那么你需要像这样copy
:
std::string final;
//Allocate pointer large enough to hold the string data + NULL
char *pp = new char[final.size() + 1];
//Use Standard lib algorithm to copy string data to allocated buffer
std::copy(final.begin(), final.end(), pp);
//Null terminate after copying it
pp[final.size()] = ' ';
//Make use of the char *
//delete the allocated memory after use, notice delete []
delete []pp;
为什么需要一个*char。我会把所有的东西都放进决赛。如果你需要一个*字符,你可以打电话给:
final.c_str();
如果你想使用char。确保您保留了足够的内存:
i=final.size()+1;
char *pp = new char[i];
不能直接将string
转换为char*
。
如果const char*
合适,则可以使用string::c_str()
。
否则,您需要将字符串的内容复制到预先分配的char数组中。
相关文章:
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 尝试将字符串/字符转换为整数会产生意外结果
- 为什么没有访问所有字符串字符?
- 将子字符串字符从字符串值转换为 int,然后将其分配给 int 变量
- 如何将字符串字符与结构数组进行比较?
- 将单个字符串/字符输入串行监视器
- 读取字符串字符时出错 - 对于数组中的字符串值
- C++ C 样式字符串/字符数组的大小 - 优化
- 读取字符串字符时出错
- C++ 使用 Strtok 读取字符串字符时出错
- 如何将 int 数组的 1 个元素转换为字符串/字符
- 在另一个字符串中逐个复制字符串字符
- 将字符串字符映射到矢量
- MBED RTOS将Float转换为字符串/字符阵列
- 如何使用字符串字符数组中的 ++ 运算符访问下一个字符串
- 如何比较C++中的单个字符串字符?
- 内部字符串/字符如何在 int 和 float 中存储
- 将十六进制转换为可打印的字符串/字符
- wcscpy_s后读取字符串字符时出错
- 检查字符串字符和长度