C 截取字符串
时间: 2023-06-21 20:07:22 浏览: 61
在 C 语言中,可以使用字符串函数或指针操作来截取字符串。
1. 使用字符串函数
C 标准库中的字符串函数 `strncpy()` 可以用来截取一个字符串的一部分。该函数的原型如下:
```c
char* strncpy(char* dest, const char* src, size_t n);
```
其中,`dest` 是目标字符串,`src` 是源字符串,`n` 是要复制的字符数。如果 `n` 大于源字符串的长度,则会在目标字符串的末尾添加空字符 '\0'。
例如,以下代码截取源字符串的前 5 个字符:
```c
#include <stdio.h>
#include <string.h>
int main() {
char src[] = "Hello, world!";
char dest[6];
strncpy(dest, src, 5);
dest[5] = '\0';
printf("Dest: %s\n", dest);
return 0;
}
```
输出:
```
Dest: Hello
```
2. 使用指针操作
指针操作可以更直接地截取一个字符串的一部分。假设我们有一个指向字符串的指针 `p`,要截取从第 3 个字符开始的一部分,可以使用以下代码:
```c
char* p = "Hello, world!";
char* substr = p + 2; // 从第 3 个字符开始
printf("Substr: %s\n", substr);
```
输出:
```
Substr: llo, world!
```
注意,使用指针操作截取字符串时,截取出的子字符串并不是一个独立的字符串,它仍然是源字符串的一部分。如果需要将其作为一个新的字符串使用,需要将其复制到一个新的内存区域中。