C++指针指向的字符串转成string
时间: 2023-05-29 21:01:26 浏览: 762
以下是将C指针指向的字符串转换为C++ string的示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
char * str = "hello world";
string s(str);
cout << s << endl;
return 0;
}
```
在上述代码中,我们使用了string的构造函数,它接受一个C风格的字符串(即以null结尾的字符数组)作为参数,并将其转换为string类型的对象。使用这种方式,我们可以将C指针指向的字符串快速、简便地转换为string类型的对象。
相关问题
C++指针怎么指向字符串
在C++中,你可以通过多种方式将指针用于表示字符串。最常见的做法是使用`char*`类型的指针,它指向一个字符数组。这里是一个简单的例子:
```cpp
#include <cstring> // 引入cstring库,包含memset函数
// 定义一个指向字符串的char*指针
char* strPtr = "Hello, World!"; // 字符串字面量直接赋值
// 或者动态分配内存
size_t len = strlen("Hello, World!"); // 获取字符串长度
char* dynamicStr = new char[len + 1]; // 确保有一个空字符结尾
strcpy(dynamicStr, "Hello, World!"); // 将字符串复制到新分配的空间
```
另一种常用的方式是使用`std::string`,这是一个内置的数据结构,但它本质上也维护了一个字符数组。这时可以使用`std::string`类型的指针(实际上是`std::string*`),但通常直接操作`std::string`会更方便:
```cpp
std::string str = "Hello, World!";
std::string* ptrToStdString = &str; // 指向std::string对象
```
利用c++,从键盘中输入一个字符串,用一个指针指向这个字符串,输出这个指针及字符串所占用的内存的大小
可以使用 `std::string` 类型来存储输入的字符串,然后使用指针来指向这个字符串。以下是使用 C++ 实现的代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
cout << "请输入一段字符串:" << endl;
getline(cin, str);
// 使用指针指向字符串
char* p = &str[0];
// 输出指针及字符串所占用的内存大小
cout << "指针所指内存地址:" << (void*)p << endl;
cout << "字符串占用内存大小:" << str.size() << endl;
return 0;
}
```
在上面的代码中,我们使用 `std::string` 类型来存储输入的字符串,并使用 `getline()` 函数从控制台读取字符串。然后,我们使用一个 `char*` 类型的指针 `p` 来指向这个字符串的第一个字符。
最后,我们使用 `(void*)p` 将指针 `p` 转换为 `void*` 类型,以输出指针所指向的内存地址。同时,我们也使用 `size()` 函数输出字符串所占用的内存大小。
阅读全文
相关推荐














