程序代码:
// 求最长单词
#include <stdio.h>
const int word_max_length = 80; // 每个单词的最大长度
const int word_max_quantity = 100; // 文本容许的单词最大数量
void main(void)
{
int ch; // 键入的字符
char words[word_max_quantity][word_max_length]; // 储存单词清单的二维数组
int lengths[word_max_quantity]; // 储存单词长度的数组
int max_length = 0; // 单词最大长度
int number = 0, index = 0;
bool in_word = false; // 标识当前扫描指示器是否处于单词中
printf_s("Please type your text (Press <Enter> to end):\n");
do
{
ch = getchar();
if (ch == ' ' || (ch == '\n'))
{
if (in_word)
{
lengths[number] = index;
if (lengths[number] > max_length)
{
max_length = lengths[number];
}
in_word = false;
++number;
index = 0;
}
}
else
{
if (!in_word)
{
in_word = true;
}
words[number][index++] = ch;
words[number][index] = '\0';
}
} while (ch != '\n');
printf_s("\nWords list:\n");
for (index = 0; index < number; ++index)
{
printf_s("%c [%s], %d\n", (lengths[index] == max_length) ? '*' : ' ', words[index], lengths[index]);
}
printf_s("max_length is %d\n", max_length);
printf_s("\nPress any key to continue...");
getchar();
}
如果你的编译器不是VC,把printf_s()函数名改为printf()。
注:这里回避了使用结构体数组,是假定你没学到。除了使用printf()和getchar(),没有使用别的函数,是最基本的方法了。随着你以后学到更多的知识,尽可以改动,比如用结构体、动态内存、C++的容器……等等。不要使用scanf()或gets(),会遇到很多麻烦的问题。
[
本帖最后由 TonyDeng 于 2013-8-4 00:21 编辑 ]