c编写一个程序,输入一个字符串后再输入2个字符,输出此字符串中从与第一个字符匹配的初始位置开始到与第二个字符匹配的初始位置之间的所有字符。
时间: 2024-12-14 07:23:18 浏览: 3
在C语言中,我们可以使用数组、循环以及条件判断来实现这个功能。以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
void find_substring(char str[], char ch1, char ch2) {
int i = 0, j = 0, index1 = -1, index2 = -1; // 初始化查找索引
while (i < strlen(str)) { // 遍历整个字符串
if (str[i] == ch1) {
index1 = i;
break; // 找到第一个字符ch1的位置就停止搜索
}
i++;
}
if (index1 != -1) { // 如果找到了ch1
i = index1 + 1; // 移动到下一个字符
while (i < strlen(str) && str[i] != ch2) { // 搜索直到找到ch2或者超出范围
if (str[i] == ch2) {
index2 = i;
break;
}
i++;
}
}
if (index2 != -1) { // 如果也找到了ch2
printf("Substring from %d to %d is: ", index1 + 1, index2);
for (j = index1 + 1; j <= index2; j++) {
printf("%c", str[j]);
}
} else {
printf("No substring found.");
}
}
int main() {
char input[100];
printf("Enter a string: ");
fgets(input, sizeof(input), stdin); // 注意这里去掉末尾的换行符
input[strlen(input) - 1] = '\0'; // 清理换行符
char ch1, ch2;
printf("Enter two characters: ");
scanf("%c %c", &ch1, &ch2);
find_substring(input, ch1, ch2);
return 0;
}
```
当你运行这个程序,它会提示你输入一个字符串,然后两个需要查找的字符。程序会找出从第一个匹配的字符位置开始到第二个匹配字符位置之间的子串并打印出来。
阅读全文