/* 1. 考虑末尾有回车键 \n的情况 2. 考虑末尾为多个空格时的情况,以便找到最后一个单词的位置 3. 计算最后一个单词的长度 */ #include <stdio.h> #include <string.h> int main() { char buf[1000] = {0}; int count = 0; int len = 0; int n = 0; //读取一行字符串(由若干单词组成的字符串) if(fgets(buf, sizeof(buf), stdin) == NULL) { printf("字符串读取出错!\n"); return -1; } //去掉末尾换行符 len = strlen(buf); if(len > 0 && buf[len-1] == '\n') { buf[--len] = '\0'; } //找到最后一个非空字符的位置 n = len-1; while((n >= 0) && (buf[n] == ' ')) { n--; } //统计最后一个单词的长度 while((n >=0) && (buf[n] != ' ')) { count++; n--; } printf("%d\n", count); return 0; }