c语言 求指定字符在字符串中最后一次出现的位置 fun
时间: 2024-05-08 20:20:53 浏览: 10
可以使用C语言的标准库函数`strrchr`来实现求指定字符在字符串中最后一次出现的位置。`strrchr`函数返回指向最后一个指定字符的指针。如果找不到该字符,则返回空指针。
示例代码如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "hello world";
char ch = 'o';
char *p = strrchr(str, ch); // 查找字符ch在字符串str中最后一次出现的位置
if (p == NULL) {
printf("字符%c在字符串中未出现\n", ch);
} else {
printf("字符%c在字符串中最后一次出现的位置是:%ld\n", ch, p - str);
}
return 0;
}
```
输出结果为:
```
字符o在字符串中最后一次出现的位置是:7
```
相关问题
用c语言定义一个可以从字符串中删除指定字符的fun函数
可以使用C语言中的字符串处理函数来定义一个可以从字符串中删除指定字符的函数。具体的实现步骤如下:
1. 首先,需要定义一个函数,这个函数接收两个参数:一个是待处理的字符串,另一个是要删除的字符。
2. 然后,遍历整个字符串,依次比较每个字符和要删除的字符是否相同,如果不相同就将该字符保存到另一个字符串中。
3. 最后,将保存下来的字符串返回即可。
下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
void delete_char(char str[], char c);
int main()
{
char str[100], c;
printf("请输入字符串:");
scanf("%s", str);
printf("请输入要删除的字符:");
scanf(" %c", &c);
printf("删除前:%s\n", str);
delete_char(str, c);
printf("删除后:%s\n", str);
return 0;
}
void delete_char(char str[], char c)
{
int i, j;
int len = strlen(str);
for (i = 0, j = 0; i < len; i++)
{
if (str[i] != c)
{
str[j++] = str[i];
}
}
str[j] = '\0';
}
```
该示例代码中,通过调用delete_char函数来删除指定字符。delete_char函数遍历整个字符串,如果当前字符不是要删除的字符,就将它保存到另一个字符串中。最后,将保存下来的字符串赋值回原来的字符串。
C语言编写函数fun,统计字符串中指定字符的个数。
可以这样写:
```c
int fun(char *str, char ch) {
int count = 0;
while (*str != '\0') {
if (*str == ch) {
count++;
}
str++;
}
return count;
}
```
其中,`str`是输入的字符串,`ch`是要统计的字符,函数返回这个字符在字符串中出现的次数。
函数的实现很简单,就是遍历字符串的每一个字符,如果遇到和要统计的字符相同的字符,就将计数器加1。最后返回计数器的值即可。