题解 | #字符串最后一个单词的长度#
字符串最后一个单词的长度
http://www.nowcoder.com/practice/8c949ea5f36f422594b306a2300315da
#include <iostream> #include <cstring> using namespace std; #define maxSize 1000 // 直接定位到最后一个字符串的最后一个元素下标i,再从这个下标出发往前走,遇到'\0'则停止,期间走的步数ret即为最后一个字符串的长度 // 算法缺陷就是字符串之间最多相隔1个'\0' int fun() { char str[maxSize] = {'\0'}; cin.getline(str, maxSize); int i; for(i = 0; i < maxSize; i++) { if(str[i]!='\0' && str[i+1]=='\0' && str[i+2]=='\0') break; } int j, ret = 0; for(int j = i; j >= 0; j--) { if(str[j] == ' ') break; else ++ ret; } return ret; } int main() { int ans = fun(); cout << ans << endl; return 0; }