使用C语言实现不必使用数组,仅应用循环求解输入一组字符和一个目标字符,编写程序找出目标字符第一次出现和最后一次出现的位置并输出。初始位置从0开始。如果目标字符不在输入的字符中,则输出-1。例如,输入sdflsadjfl&&&wr12sdfasaa和目标字符s,输出0 21
时间: 2024-12-21 20:31:40 浏览: 15
要使用C语言实现这个功能,你可以创建一个函数,接受两个参数:一个字符数组`input`和一个目标字符`target`。然后遍历数组,同时跟踪目标字符首次出现和最后出现的位置。以下是相应的代码:
```c
#include <stdio.h>
#include <string.h>
void find_char_positions(char *input, char target) {
int first_occurrence = -1;
int last_occurrence = -1;
for (int i = 0; input[i] != '\0'; ++i) {
if (input[i] == target) {
if (first_occurrence == -1) { // 首次找到目标字符
first_occurrence = i;
}
last_occurrence = i; // 更新最后一次出现的位置
}
}
printf("目标字符 '%c' 的第一次出现位置: %d\n", target, first_occurrence);
printf("目标字符 '%c' 的最后一次出现位置: %d\n", target, last_occurrence);
}
int main() {
const char *input = "sdflsadjfl&&&wr12sdfasaa";
char target = 's';
find_char_positions(input, target);
return 0;
}
```
在这个例子中,我们首先检查每个字符是否等于目标字符。如果是,我们就更新首次出现和最后一次出现的位置。如果在整个数组遍历过程中都没有找到目标字符,我们会保持首次出现位置为-1。
运行此程序,它会输出给定示例的结果:0 21。
阅读全文