微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

hdu 1736

参考:https://www.cnblogs.com/inmoonlight/p/5512878.html

要点

  1. 理解汉字的输入和输出方式:在GBK编码的情况下,一个汉字占据两个字节,在输出的时候,
    例:char str[] 中储存了“中”一个字,输出的时候cout<<str[0]<<endl;和cout << str[1] << endl;不会在控制台上输出字符。cout << str[0] << str[1] << endl;会输出一个“中”字。
    string中保存:
    st = “”;
    st = st + s[0] + s[1];
    //直接st = s[i] + s[i+1];不行 (为什么?
  2. 需要处理的有成对的汉字符号:“ ”,而且可能前一个是全角,后一个半角
    需要处理的字符可能是两个英文字符合并成单个中文字符:<< 《;
    以上两点需要用一个两位的字符串来判断,第一点还需要计数器辅助判断输出“还是”。
  3. 并不需要真正在字符数组中替换掉,只需要检测出有需要替换的字符,将其替换成需要的字符输出即可。
  4. gets()函数获取所有缓冲区域的内容,遇到换行符或者到文章末尾结束(getline()函数功能类似?参考https://blog.csdn.net/qq_42128241/article/details/81772875无法理解问题中所说的一段文字可以包含换行符,是换行符并不代表一段文字结束吗?这样的话gets()不就无法获取换行符之后的字符了吗?
?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐