c语言 查找指定字符?

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

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

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

输入样例1:
m
programming
输出样例1:
index = 7
输入样例2:
a
1234
输出样例2:
Not Found

第1个回答  2019-11-27
#include<stdio.h>
int main()
{
char c,d;
int i=0,index=-1;
scanf("%c",&d);
while(1)
{
c=getchar();
index=c==d ? i : index;
if('\n'==c)
break;
i++;
}
if(-1==index)
printf("Not Found\n");
else
printf("index = %d\n",index);
return 0;
}追问

index=c==d ? i : index; 这个是打错了吗

追答

没错

追问

不行啊,就对了一点点

追答

在scanf("%c",&d);的下面加上fflush(stdin);试试。

追问

还是只对了一点点,大哥,有没有新手写法, 你这种高级写法我不懂啊

本回答被网友采纳
第2个回答  2019-11-28

追问

不行啊,就对了一半

追答

改成

if(index>-1)

追问

恕我眼拙,你上面的不就是if(index>-1)么?

追答

这是修改过了的

追问

???

追答

这图已经修改过了的

追问

就是按照这个图来的,20分拿了7分,sample2, not found index = 0 index = max,字符串中有空格 最小字符串 这几个测试点都没过

追答

追问

index=max 字符串中有空格,现在就差这个测试点没过了

追答

你给的题目的样例1输出是
index =7

index空格=空格7

追问

对啊

做不出没关系的

我现在换了个方法做出来了

追答

80改成81

本回答被提问者采纳