能给一个c++用函数截取字符串具体实例吗
时间: 2023-05-12 17:06:35 浏览: 79
当然可以,以下是一个简单的例子:
```c
#include <stdio.h>
#include <string.h>
void substring(char s[], int start, int end) {
for (int i = start; i < end; i++) {
printf("%c", s[i]);
}
}
int main() {
char str[] = "Hello, world!";
substring(str, 0, 5); // 输出 "Hello"
return 0;
}
```
这个例子中,我们定义了一个名为 `substring` 的函数,它接受三个参数:一个字符串 `s`,一个起始位置 `start` 和一个结束位置 `end`。函数的作用是输出字符串 `s` 中从位置 `start` 到位置 `end-1` 的子串。在 `main` 函数中,我们定义了一个字符串 `str`,然后调用 `substring` 函数输出了它的前五个字符。
相关问题
c++ string截取字符串函数
在C语言中,可以使用以下函数来截取字符串:
1. strncpy()函数:将一个字符串的一部分复制到另一个字符串,可以截取指定长度的字符串。
```c
char *strncpy(char *dest, const char *src, size_t n);
```
其中,`dest`表示目标字符串,`src`表示源字符串,`n`表示要复制的字符数。
示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello, world!";
char str2[10];
strncpy(str2, str1, 5);
str2[5] = '\0';
printf("str2: %s\n", str2);
return 0;
}
```
输出:
```
str2: Hello
```
2. strncat()函数:将一个字符串的一部分拼接到另一个字符串的末尾,可以截取指定长度的字符串。
```c
char *strncat(char *dest, const char *src, size_t n);
```
其中,`dest`表示目标字符串,`src`表示源字符串,`n`表示要拼接的字符数。
示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello, ";
char str2[] = "world!";
strncat(str1, str2, 5);
printf("str1: %s\n", str1);
return 0;
}
```
输出:
```
str1: Hello, wor
```
3. strtok()函数:将一个字符串分割成多个子字符串,可以截取指定的子字符串。
```c
char *strtok(char *str, const char *delim);
```
其中,`str`表示要分割的字符串,`delim`表示分隔符。
示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello, world! This is a test.";
char *ptr;
ptr = strtok(str, " ");
while (ptr != NULL) {
printf("%s\n", ptr);
ptr = strtok(NULL, " ");
}
return 0;
}
```
输出:
```
Hello,
world!
This
is
a
test.
```
以上是C语言中截取字符串的几种方法,根据具体的需求可以选择不同的函数来使用。
c++ 字符串截取函数
C++ 中可以使用 substr() 函数来截取字符串。该函数的语法如下:
```
string substr (size_t pos, size_t len) const;
```
其中,pos 表示要截取的起始位置,len 表示要截取的长度。如果省略 len 参数,则默认截取到字符串末尾。
例如,以下代码将从字符串 str 的第 3 个字符开始截取 5 个字符:
```
string str = "Hello, world!";
string substr = str.substr(2, 5); // "llo, "
```
注意,substr() 函数返回的是一个新的字符串,原字符串不会被修改。