5.20 字符串操作练习
5.31 编写一个程序,用函数 strcmp
比较用户输入的两个字符串。程序指出第一个字符串是小于、等于或大于第二个字符串。
5.32 编写一个程序,用函数 strncmp
比较用户输入的两个字符串,程序要输入比较的字符数。程序指出第一个字符串是小于、等于或大于第二十字符串。
5.33 编写一个程序,用随机数产生器建立语句。程序用4个char类型的指针数组 article、noun、verb 和 preposmon。程序按下列顺序从4个数组分别随机取一个元素生成语句:article、noun、verb、preposmon、article 和 noun。选择每个单词时,在能放下整个句子的数组中连接上述单词。单词之间用空格分开。输出最后的语句时,应以大写字母开头,以圆点结尾。程序产生20个句子。
数组填充如下:article数组包含冠词 ”the”、”a”、”One”、”some” 和 ”any”,“noun 数组包含名词 ””,”girl”、”dog”、”town” 和 ”car”,verb 数组包含动词 ”drove”、”jumped”、 ”ran”、”walked” 和 ”skipped”,preposmon 数组包含介词 ”to”、”from"、”over”、”under',和“on”。
编写上述程序之后,将程序修改成产生由几个句子组成的短故事(这样就可以编写一篇自动文章)。
5.34 (五行打油诗)五行打油诗由五句话组成,第一行、第二行与第五行压韵,第三行与第四行压韵。利用练习5.33介绍的方法,编写一个随机产生五行打油诗的C++程序。要产生好的五行打油诗并不容易,但这个工作非常有趣。
5.35 编写一个将英语短语编成 pig Latin 的程序,pigLatin 就是故意打乱单词的字母顺序。下面是一个简单的pigLatin算法。
要将英语短语编成 pig Latin,用函数 strtok
将短语标记化为各个单词:要把单词变成pig Latin,将第一个字母放到末尾,并加上“ay'’字样.如"jump"变成”umpjay”,“the”变成 hetay
、 computer
,变成 omputercay
。单词之间的空格保持不变。假设单词之间用空格分开,没有标点符号,每个单词均由两个以上字母组成。函数printLatinWord显示每个单词。提示每次调用strtok并找到一个标记时,将标记指针传递给函数 print Latin Word,井打印 pigLatin 单词。
5.36 编写一个程序,以(555)555—5555 形式输入电话号码字符串。程序用函数strtok取得区号标记,电话号码的前三位作为一个标记,后四位作为另一个标记。电话号码的七位数连接成一个字符串。程序将区号字符串变为int型,将电话号码字符串变为long型,并打印区号和电话号码字符串。
5.37 编写一个程序,输入一行文本,用 strtok 函数标记化该行文本,并以相反顺序输出标记。
5.38 用 5.12.2 节介绍的字符串比较函数和第4章介绍的数组排序技术编写一个程序,按字母顺序列出字符串清单。用10个或15个城市名作为程序数据。
5.39 对图 5.29 的字符串复制和字符串连接函数编写两个版本,—个用数组下标,一个用指针与指针算法。
5.40 对图 5.29 的字符串比较函数编写两个版本,一个用数组下标,一个用指针与指针算法。
5.41 对图 5.29 的字符串strlen函数编写两个版本,一个用数组下标,一个用指针与指针算法。