本题要求编写程序,从给定字符串中查找某指定的字符。
输入格式:
输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。
输出格式:
如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。
输入样例1:
m
programming
结尾无空行
输出样例1:
index = 7
结尾无空行
输入样例2:
a
1234
输出样例2:
Not Found
思路:
主体都一样,函数实现方式,尝试了两种写法
代码1:
#include<stdio.h>
int flag = 0;
int strsearch(char ch, char arr[]);
int main()
{
char ch = 0, arr[81] = { 0 };
int index = 0;
scanf("%c\n", &ch);
gets(arr);
index = strsearch(ch, arr);
if (flag == 1)
printf("index = %d", index);
else
printf("Not Found");
return 0;
}
int strsearch(char ch, char arr[])
{
int i = 0, index = 0;
while (*arr)
{
if (*arr == ch)
flag=1,index = i;
i++;
arr++;
}
return index;
}
代码2:
#include<stdio.h>
#include<string.h>
int flag = 0;
int strsearch(char ch, char arr[],int len);
int main()
{
char ch = 0, arr[81] = { 0 };
int index = 0,len=0;
scanf("%c\n", &ch);
gets(arr);
len = strlen(arr);
index = strsearch(ch, arr,len);
if (flag == 1)
printf("index = %d", index);
else
printf("Not Found");
return 0;
}
int strsearch(char ch, char arr[],int len)
{
int i = 0, index = 0;
for (i = 0; i < len; i++)
{
if (arr[i] == ch)
flag=1,index = i;
}
return index;
}