百度了一下另外两位同学的做法,都是先判断是否匹配,然后再用一个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 "); }