C++指针指向的字符串转成string
时间: 2023-05-29 19:01:26 浏览: 471
以下是将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++指针指向的字符串赋给string
首先需要明确的是,C 语言中的字符串本质上是一个字符数组,以 '\0'(即 null 字符)结尾。而指针只是一个指向内存地址的变量,因此我们需要将指针指向的字符串赋值给一个字符数组,最终再将这个字符数组赋值给字符串。
假设有一个指针 char *p 指向一个字符串 "Hello, world!",如下所示:
```
char *p = "Hello, world!";
```
我们需要先创建一个足够存放这个字符串的字符数组,如下所示:
```
char str[14]; // 'H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!', '\0'
```
然后,我们使用 strcpy 函数将指针指向的字符串拷贝到这个字符数组中,如下所示:
```
strcpy(str, p);
```
最后,将这个字符数组赋值给字符串即可,如下所示:
```
char *string = str;
```
完整的示例代码如下:
```
#include <stdio.h>
#include <string.h>
int main() {
char *p = "Hello, world!";
char str[14]; // 'H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!', '\0'
strcpy(str, p);
char *string = str;
printf("%s\n", string);
return 0;
}
```
C++指针指向的字符串赋给string数组元素
下面是将C指针指向的字符串赋给string数组元素的示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
char *cstr = "Hello World!"; // C指针指向的字符串
string str[3]; // 定义一个string数组
for(int i = 0; i < 3; i++) {
str[i] = cstr; // 将cstr赋值给str数组元素
}
// 输出str数组的元素
for(int i = 0; i < 3; i++) {
cout << "str[" << i << "]: " << str[i] << endl;
}
return 0;
}
```
输出结果为:
```
str[0]: Hello World!
str[1]: Hello World!
str[2]: Hello World!
```
在上面的代码中,我们首先定义了一个C指针cstr并将其指向一个字符串常量"Hello World!"。然后我们定义了一个string类型的数组str,该数组中有3个元素。在for循环中,我们将cstr赋值给str数组的每个元素,这样每个元素都将保存指向同一个字符串的指针。最后,我们遍历str数组并输出每个元素的值,可以看到每个元素都包含了指向同一个字符串的指针。