用户C语言判断字符串中有4个空格 ,如果有并截取第二个空格和第三个空格之间的字符串
时间: 2024-09-30 09:04:48 浏览: 64
在C语言中,要判断字符串中是否有四个空格,并截取从第二个空格到第三个空格之间的内容,你需要先遍历字符串,查找空格的数量,然后找到空格的位置。下面是一个示例程序,展示了如何完成这个任务:
```c
#include <stdio.h>
#include <string.h>
char* find_substring_with_spaces(char* str) {
int space_count = 0;
size_t len = strlen(str);
size_t start_index = -1, end_index = -1;
for (size_t i = 0; i < len; i++) {
if (str[i] == ' ') {
space_count++;
if (space_count == 4) { // 找到了第四个空格
start_index = i + 1; // 第二个空格的位置加一
break;
}
} else if (start_index != -1 && space_count > 4) { // 已经找到了三个空格并且又找到一个非空格
end_index = i;
break;
}
}
if (end_index == -1 || start_index == -1) {
return NULL; // 没有找到符合条件的子串
} else {
// 截取子串并返回指针
char* substr = malloc((end_index - start_index + 1) * sizeof(char));
strncpy(substr, str + start_index, end_index - start_index + 1);
substr[end_index - start_index] = '\0'; // 添加终止符
return substr;
}
}
int main() {
char str[] = "This is a string with four spaces.";
char* result = find_substring_with_spaces(str);
if (result) {
printf("Substring between second and third spaces: %s\n", result);
free(result); // 释放动态分配的内存
} else {
printf("No substring found.\n");
}
return 0;
}
```
这个程序会输出从第二个空格到第三个空格之间的子串(包含这两个空格),如果找不到这样的子串,则输出"No substring found."。
阅读全文