输入一个字符串,输出长度最长的单词
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]; /* 得到长度最大的单词的首地址 */ }
相关文章推荐
- 输入一个字符串,输出长度最长的单词
- 写一个函数,输入一行字符,将此字符串中最长的单词输出
- 问题:求两个字符串的最长公共子串。 要求:输入两个字符串,输出它们的最长公共子串,包括长度。 设计: 设计一个类 String,包括一个 len(字符串长度)和字符串指针 s。另有如下成员函数: ·
- 写一个函数,输入一行字符,将此字符串中最长的单词输出。
- 习题 7.10 写一个函数,输入一行字符,将此字符串中最长的单词输出。
- 输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。
- 输入一个字符串,找到其中最长的单词并输出
- 输入一个字符串,输出该字符串的最长重复子序列。
- C#将输入的一个字符串的每个单词加上双引号输出
- 写一个函数,用来把一个字符串用指定的字符作为分隔符分割成若干个子串输出 | 写一个函数,用来返回一个字符串中重复出现的最长字串的长度及其开始地址
- 输入一个字符串,输出该字符串中对称的子字符串的最大长度。
- 写一个方法,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
- 输入一个字符串,将字符串中的单词逆序输出
- 输入一行子串,找出其中出现的相同且长度最长的字符串,输出它及其首字符的位置
- 问题:求两个字符串的最长公共子串。 要求:输入两个字符串,输出它们的最长公共子串,包括长度。
- 【程序38】 题目:写一个函数,求一个字符串的长度, 在main函数中输入字符串,并输出其长度。
- 写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度
- 005求一个字符串中出现相同且长度最长的字符串,输出它及其首字符位置
- 输入一行字符串,找出其中出现的相同且长度最长的字符串,输出它及其首字符的位置
- 02_对N个长度最长可达到1000的数进行排序、对给定的一个字符串,找出有重复的字符,并给出其位置、输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序