#include<stdio.h>
#include<string.h>
int main(void){
char a[20][10],c; //二维字符数组a用来存放每个单词 :第一个单词就是a[0] 以此类推
int i=0,j=0,n=0,count=0; //n为空格的数目 n+1就是单词的个数 count为字母的个数
while((c=getchar())!='.'){ //如果输入的是'.' 就不会进入循环 这样就可以避免存入字符 点
if(c!=' '){
count++; //如果输入的字符是字母 count++
a[i][j]=c; //注意 第一次进入该循环的时候 i,j都是0(已经初始化了) 此时的i代表的是二维字符数组中第几个一位字符数组
j++;
}else{
a[i][j]='\0'; //如果输入的是空格 代表这个单词已经结束 因为后面使用的是字符串输出,所以在一维字符数组后面需要加上一个'\0'
i++; //i++ 这个一位字符数组已经放入单词了 换下一个
j=0; //新的单词 新的j
n++; //记录空格的个数
}
}
a[i][j]='\0';//因为最后一个单词后面没有空格了 所以我们要手动加上'\0' 不然后面的strcmp函数没办法用
//到这里为止 我们已经成功将这一行字符 拆分成各个单词存放于二维数组a中
char b[10]; //b为输入的字符串 用于对比
// i是从0开始的 所以目前 i+1的值就是单词的个数 i也就是a数组的最大有效下标(下标从0开始)
//如果不懂 那就用n+1 一个意思 n+1=i+1
scanf("\n"); //在你输入第二行之前 按了回车
gets(b);
for(i=0;i<=n;i++){
if(strcmp(a[i],b)==0){
printf("%d",i+1); //如果相等,就输出是第几个单词 i+1 显而易见
break;
}
}
if(i>n) printf("%d",count);//如果i>n 说明没找到 输入字母的个数
return 0;
}
/**************************************************************
Problem: 1012
User: admin
Language: C
Result: Accepted
Time:9 ms
Memory:1144 kb
****************************************************************/