查找指定字符

该程序用于在输入的字符串中查找指定字符,并输出其最大下标。如果未找到,则显示NotFound。程序使用了C语言,遍历字符串并比较每个字符来实现功能。

本题要求编写程序,从给定字符串中查找某指定的字符。

输入格式:

输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。

输出格式:

如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。

输入样例1:

m
programming

输出样例1:

index = 7

输入样例2:

a
1234

输出样例2:

Not Found

代码如下:

#include<stdio.h>
#include<string.h>
#include<stdlib.h> 
int main()
{
    char a[81],c;
    int x=-1,i;
    c= getchar();
    getchar();
    gets(a);
    for(i=0;a[i]!='\0';i++)
    {
        if(a[i]==c)
            x=i;
    }
    if(x==-1)
        printf("Not Found");
    else
        printf("index = %d",x);
    return 0;
}

在C语言查找指定字符,可通过遍历字符数组并逐个比较元素与指定字符来实现。以下为两个示例代码: 示例代码一: ```c #include <stdio.h> #include <string.h> int main() { char a, b[100]; int c, i = 0, d = -1; a = getchar(); // 输入查找字符 getchar(); // 吃掉字符'\n',否则会使系统错误识别,无法输出预期结果 gets(b); c = strlen(b); // 小建议:字符数组的大小尽量以这种方法计算 for (i = 0; i < c; i++) { if (b[i] == a) { d = i; } } // 将数组中的字符与待查找字符进行比较 if (d == -1) // 此处的d用于判断是否找到对应字符 { printf("Not Found"); } else { printf("index = %d", d); } return 0; } ``` 此代码中,首先使用`getchar()`获取待查找字符,接着用另一个`getchar()`吃掉换行符,避免影响后续输入。然后使用`gets()`获取字符串,通过`strlen()`计算字符串长度。最后遍历字符串,若找到指定字符则记录其索引,若未找到则输出`Not Found` [^1]。 示例代码二: ```c #include <stdio.h> #include <string.h> int main() { int i, flag = -1; char m, a[100], ch; scanf("%c", &m); ch = getchar(); gets(a); for (i = 0; i < strlen(a); i++) { if (a[i] == m) flag = i; } if (flag >= 0) printf("index = %d", flag); else printf("Not Found"); return 0; } ``` 该代码利用`scanf()`获取待查找字符,再用`getchar()`吃掉换行符,接着使用`gets()`获取字符串。通过遍历字符串,若找到指定字符则更新`flag`为该字符的索引,若未找到则输出`Not Found` [^2]。 需要注意,由于题目要求第一行输入一个字符第二行输入一个字符串,所以在输入一个字符之后,会先按回车键,再进行字符串输入。因此要用`getchar()`将这个换行操作吃掉,再进行字符串输入,直到换行才结束。若前面没有加这个`getchar()`,则输入的第一个字符即为换行键,索引的值会改变,结果始终输出`Not Found` [^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值