PAT 10-1 在字符串中查找指定字符

百度了一下另外两位同学的做法,都是先判断是否匹配,然后再用一个for()循环输出,我当然也是先判断,然后,就直接puts(),还是巧妙一点,题设要求及代码实现如下

/*
    Name: 
    Copyright: 
    Author: 
    Date: 03/04/15 14:49
    Description: 
输入一个字符串S,再输入一个字符c,要求在字符串S中查找字符c。如果找不到则输出“Not found”;若找到则输出字符串S中从c开始的所有字符。

输入格式:

输入在第1行中给出一个不超过80个字符长度的、以回车结束的非空字符串;在第2行中给出一个字符。

输出格式:

在一行中按照题目要求输出结果。

输入样例1:
It is a black box
b
输出样例1:
black box
输入样例2:
It is a black box
B
输出样例2:
Not found
*/

#include <stdio.h>
#include <string.h>
#include <stdbool.h>

#define MAX 80

void print(char * S, int l, char c);

int main()
{
//    freopen("in.txt", "r", stdin); // for test
    char S[80], c;
    int l;
    
    gets(S);
    l = strlen(S);
    c = getchar();
    
    print(S, l, c);
//    fclose(stdin); // for test
    return 0;
}

void print(char * S, int l, char c)
{
    int i;
    
    for(i = 0; i < l; i++)
    {
        if(S[i] == c)
        {
            puts(S + i);
            break;
        }
    }
    if(i == l)
        printf("Not found
");
}
原文地址:https://www.cnblogs.com/qingkai/p/4390137.html