无论用户说什么,首先把对方说的话在一行中原样打印出来;
消除原文中多余空格:把相邻單词间的多个空格换成 1 个空格把行首尾的空格全部删掉,把标点符号前面的空格删掉;
把原文中所有大写英文字母变成小写除了 I;
把原文中所有独立的 I 和 me 换成 you;
把原文中所有的问号 ? 换成惊叹号 !;
把原文中所有独立的 can you 换成 I can —— 这里“独立”是指被空格或标点符号分隔开的單词;
在一行中输出替换后的句子作为 AI 的回答。
输入首先在第一行给出不超过 10 的正整数 N随后 N 行,每行给出一句不超过 1000 个字符的、以回车結尾的用户的对话对话为非空字符串,仅包括字母、数字、空格、可见的半角标点符号
到此大致的程序已经出来了,我们还差末尾符号前的空格和把 can you 換成 I can但是此时运行程序,出现运行时错误不能正常输出t串,为什么呢
回头看程序,发现在一开始就有瑕疵我们string了t,但是没有初始囮于是没有真正地为其分配地址。那么在给t[j]赋值的时候不会给它分配一个首地址。这就导致直接cout会出错有两个解决办法,一个是初始化但是谁会愿意初始化的时候打几千个字符呢?否决!第二个方法使用for循环遍历t串这样就能顺利输出了。
但还是感觉好麻烦有没有所以干脆放弃用string,直接用字符数组吧!
那么要预定多长的数组呢
题目要求一行最多1000个,那就1000个吗不行哦,我们最后有个结尾符\0也要占一个。
那就1001个吧也不行,要是全是1000个I我们要把I变成you,不就要三倍了吗
所以还是3001个吧!保险起见再多加一个。
整合一下就有现在嘚代码。