用C语言分割最后一个/前面的内容, 字符串如: " /config/privacy_mask/mask2/name"
时间: 2023-11-12 07:06:14 浏览: 34
可以使用C语言中的字符串操作函数 `strrchr()` 和 `strncpy()` 来实现。具体代码如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = " /config/privacy_mask/mask2/name";
char *p = strrchr(str, '/');
if (p != NULL) {
char result[100];
strncpy(result, p+1, sizeof(result)-1);
result[sizeof(result)-1] = '\0';
printf("Last segment: %s\n", result);
}
return 0;
}
```
运行结果为:
```
Last segment: name
```
解释一下代码:
- `strrchr()` 函数可以在字符串中查找最后一个指定字符的位置,此处指定字符为 `/`。
- 如果找到了该字符,那么 `p` 指向该字符的位置,否则 `p` 为 `NULL`。
- 然后使用 `strncpy()` 函数将该字符后面的内容复制到一个新的字符串中。
- 需要注意的是,要避免越界,因此在复制时需要限定长度,即 `sizeof(result)-1`。
- 最后,为新的字符串添加一个结尾字符 `\0`,并打印出来。
相关问题
用C语言分割最后一个/, 字符串如: " /config/privacy_mask/mask2/name"
可以使用C语言中的字符串处理函数`strrchr()`和指针操作来实现。
示例代码如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "/config/privacy_mask/mask2/name";
char *last_slash = strrchr(str, '/'); // 找到最后一个 '/'
if (last_slash != NULL) {
char *result = last_slash + 1; // 指向最后一个 '/' 后面的字符
printf("%s\n", result); // 输出结果
}
return 0;
}
```
输出结果为:
```
name
```
在代码中,首先使用`strrchr()`函数找到最后一个'/'的位置,如果不为空,则将指针指向最后一个'/'后面的字符,即所要分割的字符串。最后输出结果即可。
用C语言提取下面字符串中的name: " /config/privacy_mask/mask2/name"
可以使用C语言中的字符串处理函数来提取该字符串中的name,例如使用strstr函数和sscanf函数:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "name: \" /config/privacy_mask/mask2/name\"";
char *ptr = strstr(str, "/config/privacy_mask/mask2/name");
if (ptr != NULL) {
char name[50];
sscanf(ptr, "/config/privacy_mask/mask2/name%s", name);
printf("name: %s\n", name);
} else {
printf("name not found!\n");
}
return 0;
}
```
输出结果为:
```
name: name
```
注意:这种方法假设字符串中只出现一次 "/config/privacy_mask/mask2/name",如果出现多次,可能需要使用其他方法来提取。