未知长度的字符串,怎么用指针指向字符串最后一个字符
时间: 2024-04-29 16:25:06 浏览: 15
可以使用字符串函数 `strlen()` 来获取字符串的长度,然后用指针指向字符串的最后一个字符。
例如:
```c++
#include <iostream>
#include <cstring>
int main() {
char str[] = "Hello, world!";
size_t len = strlen(str); // 获取字符串的长度
char* ptr = &str[len-1]; // 指针指向字符串的最后一个字符
std::cout << *ptr << std::endl; // 输出最后一个字符
return 0;
}
```
输出:
```
!
```
相关问题
声明一个字符串指针并指向一个字符串
声明一个指向字符串的指针并指向一个字符串的方法如下:
```c++
const char* str = "Hello, world!";
```
或者使用 C++11 引入的 string 类型:
```c++
#include <string>
std::string str = "Hello, world!";
const char* ptr = str.c_str(); // 获取指向字符串的指针
```
需要注意的是,使用指向字符串的指针时,应该使用 `const char*` 类型,因为字符串是常量,不能被修改。
c语言字符串使用指针指向
在 C 语言中,字符串是以字符数组的形式存储的。如果要使用指针指向字符串,可以直接将字符数组名作为指针使用,因为字符数组名本身就代表了数组的首地址。
例如,如果有一个字符串数组:
```
char str[] = "hello world";
```
可以使用指针指向这个字符串数组:
```
char *ptr = str;
```
这里,`ptr` 是一个指向字符的指针,它指向了字符串数组 `str` 的首地址。可以通过指针 `ptr` 访问字符串中的每个字符,例如:
```
printf("%c\n", *ptr); // 输出 'h'
printf("%c\n", *(ptr+1)); // 输出 'e'
printf("%c\n", *(ptr+2)); // 输出 'l'
```
注意,字符串的末尾需要添加一个字符 '\0',表示字符串的结束。在使用指针指向字符串时,需要确保指针不越界,即不能访问到 '\0' 后面的内存空间。
相关推荐
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)