最后一个单词的这种方法,为啥我没有输出,程序能正常编译

//计算最后一个单词的长度
#include<cstdio>
#include<cstring>

char s[10005];
int main()
{
	while( scanf("%s", s) != EOF);//一直读到不再有输入 
	int len = strlen(s);
	printf("%d\n", len);

	return 0;
}

 

试试这个(只适用于所有单词在同一行的情况)

#include <iostream>
#include <string>
using namespace std;
int main() {
	string s;
	int len = 0; 
	getline(cin, s);
	for(int i = s.length() - 1; i >= 0; --i) {
		if(s[i] != ' ') ++len;
		else break;
	}
	cout << len;
	return 0;
}

输入完成后,需要ctrl+d,作为结束(EOF)才能打印长度。

ctrl+z

输入完成后,需要ctrl+z,作为结束(EOF)才能打印长度。