用c编写程序查找指定字符在字符串中第一次和最后一次出现的位置,要用到子函数
时间: 2024-03-10 11:51:08 浏览: 102
好的,下面是使用 C 语言编写的程序,它可以查找指定字符在字符串中第一次和最后一次出现的位置,并使用子函数实现。
```c
#include <stdio.h>
#include <string.h>
void find_first_and_last(char *s, char c, int *first, int *last) {
*first = strchr(s, c) - s;
*last = strrchr(s, c) - s;
}
int main() {
char s[100], c;
int first, last;
printf("Enter a string: ");
fgets(s, 100, stdin);
printf("Enter a character to find: ");
scanf("%c", &c);
find_first_and_last(s, c, &first, &last);
if (first == -1) {
printf("The character '%c' is not found in the string.\n", c);
} else {
printf("The first occurrence of '%c' is at position %d.\n", c, first);
printf("The last occurrence of '%c' is at position %d.\n", c, last);
}
return 0;
}
```
这个程序首先定义了一个 `find_first_and_last` 函数,它接受三个参数:一个指向字符串的指针 `s`,要查找的字符 `c`,以及两个指向整数的指针 `first` 和 `last`。这个函数使用了 C 语言标准库中的 `strchr` 和 `strrchr` 函数来分别查找第一次和最后一次出现的位置,并计算出它们在字符串中的索引。最后,它通过修改指针变量 `first` 和 `last` 的值来返回这两个位置。
在 `main` 函数中,我们首先读入一个字符串和要查找的字符,并调用 `find_first_and_last` 函数来查找这个字符在字符串中第一次和最后一次出现的位置。如果这个字符没有在字符串中出现过,那么 `find_first_and_last` 函数会把 `first` 和 `last` 的值都设置为 -1。在 `main` 函数中,我们通过检查 `first` 是否等于 -1 来判断这个字符是否在字符串中出现过。如果没有出现过,我们就输出一条错误信息。否则,我们输出这个字符在字符串中第一次和最后一次出现的位置。
阅读全文