char str[255] = {0};
printf("请输入一个字符串:\n");
scanf("%[^\n]", str);//意思是非'\n'。也就是说只要没有遇到换行就继续输入,当遇到换行符的时候此语句结束。而默认情况是遇到换行语句执行结束,但是str的值只是第一个空格前的值。但这样写,按回车时scanf执行完,中间所有内容包括空格都会输入到str中去。
// gets(str);
int maxLength = 0, maxIndex = 0;
int length = 0;
int i = 0;
while (str[i] != '\0') {
if (str[i] != ' ') {
length++;
} else {
if (maxLength < length) {
maxLength = length;
maxIndex = i - maxLength;
}
length = 0;
}
i++;
}
if (maxLength < length) {
maxLength = length;
maxIndex = i - maxLength;
}
for (int j = maxIndex; j < maxIndex + maxLength; j++) {
printf("%c", str[j]);
}