需求:从键盘上输入一行英文,求导数第二个单词的个数。(假设英文中不存在标点符号)
(问题出处:C语言程序设计案例教程第二版P59,T10)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
char lines[60]={0};
int i=0,j=0;
printf("请输入一行英文:\n");
scanf("%[^\n]s",lines);//输入的小技巧
for(i=strlen(lines);lines[i]!=' ';i--){
// printf("%c %d\n",lines[i],i);//减去最后一个单词
}
i--;//减去最后一个空格
while(i!=-1&&lines[i]!=' '){
i--,j++;//统计倒数第二个单词个数j
}
printf("倒数第二个单词的字母个数是:%d\n",j);
return 0;
}
注:
要是使用scanf("%s",lines);则输入遇到空格就会自动结束,无法读取一行的英文,而
scanf("%[^\n]s",lines);中%[^\n]s代表读取输入的字符串可以允许有空格。
代码只能解决单词间仅有一个空格时的情景