您的位置:首页 > 其它

输入一个字符串,输出长度最长的单词

2011-06-14 18:25 344 查看
/*******************************************************************************************
** 函数名称:  PrintLongestWordFromString()
** 作    者:  张月华
** 版    本:  1.0.0
** 日    期:  2011-6-14
** 功能描述:  输入一个字符串,输出其中单词长度最长的单词,各个单词以空格间隔
** 被本函数调用的函数清单: 1.strlen()
** 调用本函数的函数清单:  1. main()
** 被访问的表:  无
** 被修改的表 : 无
** 输       入:  char *string_in ,输入字符串

** 输       出:  无
** 返  回   值:  长度最长的单词的首地址
** 其       他:
输入:" I am a boy! And you are a girl~ Chinese!"
输出:Chinese!
** 修改历史:

1. 修改时间:
修 改 者:
版    本:
修改简述:
2. ......
*********************************************************************************************/

char *PrintLongestWordFromString(char *string_in)
{
char *pointer_to_word[256];   /* 用来存放单词的首地址 */
unsigned int strlen_each_word[100];  /* 存放每个单词的长度 */

unsigned int liv_i;  /* 挨个查找每一个字符,循环变量 */
unsigned int liv_j;  /* 指示指针数组的下标,循环变量 */

int is_word;   /* 是否是单词 ,单词开始 = 1,不是单词 = 0*/
unsigned int words_total = 0;   /* 单词总个数 */

unsigned int longest_word_length;  /* 最长的单词的长度 */
int longest_subscript = 0;  /* 用来存放最长单词的下标 */

for (liv_i = 0,liv_j = 0; string_in[liv_i] != '/0'; liv_i++)
{
if(string_in[liv_i] == ' ')
{
is_word = 0;
string_in[liv_i] = '/0'; /* 将空格都变成'/0',这样用strlen()求得每一个单词长度(不包含/0),用%s输出的就是单个单词 */

}
else
if (is_word == 0)
{

pointer_to_word[liv_j] = &string_in[liv_i];   /* 获得当前单词的首地址,此时用%s输出的就是单个单词*/
liv_j++;                                      /* 单词之间以空格隔开 */
is_word = 1;
}
}

words_total = liv_j;   /* 记录单词总个数 */

for (liv_j = 0; liv_j < words_total; liv_j++)
{

strlen_each_word[liv_j] = strlen(pointer_to_word[liv_j]);  /* 获得每个单词的长度值 */

}

longest_word_length = strlen_each_word[0];   /* 假定第0个元素,即第一个单词长度就是最大的 */

for (liv_i = 0; liv_i < words_total; liv_i++)  /* 求长度最大的单词的下标值 */
{
if (strlen_each_word[liv_i] > longest_word_length)
{
longest_word_length = strlen_each_word[liv_i];  /* 得到最长的值 */
longest_subscript = liv_i;   /* 得到其对应的下标,就是指针数组中对应的下标位置 */
}

}

return pointer_to_word[longest_subscript];  /* 得到长度最大的单词的首地址 */

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐