C语言截取字符串
时间: 2023-06-21 20:23:21 浏览: 175
在C语言中,可以使用字符串函数`strncpy`和`strncat`来截取字符串。
`strncpy`函数用于将源字符串的一部分复制到目标字符串中。它的函数原型如下:
```c
char *strncpy(char *dest, const char *src, size_t n);
```
其中,`dest`是目标字符串的指针,`src`是源字符串的指针,`n`是要复制的字符数。
例如,假设有一个源字符串`s`,要截取从第3个字符开始的5个字符,并将结果复制到目标字符串`dest`中:
```c
char s[] = "Hello, world!";
char dest[6];
strncpy(dest, s+2, 5);
dest[5] = '\0'; // 手动添加字符串结束符
printf("%s\n", dest); // 输出 "llo, "
```
这里的`s+2`表示从`s`的第3个字符开始截取,由于C语言中字符串的索引也是从0开始的,所以实际上是从第2个字符开始的。
另外需要注意的是,由于`strncpy`函数不会自动添加字符串结束符,因此需要手动将`dest`字符串的第6个字符设置为`\0`,以确保字符串正确结束。
`strncat`函数用于将源字符串的一部分追加到目标字符串的末尾。它的函数原型如下:
```c
char *strncat(char *dest, const char *src, size_t n);
```
其中,`dest`是目标字符串的指针,`src`是源字符串的指针,`n`是要追加的字符数。
例如,假设有一个源字符串`s`,要截取从第3个字符开始的5个字符,并将结果追加到目标字符串`dest`的末尾:
```c
char s[] = "Hello, world!";
char dest[13] = "Goodbye, ";
strncat(dest, s+2, 5);
dest[12] = '\0'; // 手动添加字符串结束符
printf("%s\n", dest); // 输出 "Goodbye, llo, "
```
这里的`s+2`和上面的例子一样,表示从第3个字符开始截取。另外需要注意的是,由于`strncat`函数会在目标字符串的末尾追加源字符串的一部分,并自动添加字符串结束符,因此不需要手动添加字符串结束符。
阅读全文