程序训练6 相关提示

基础知识提示

1. 循环输入问题

请看这段代码:

char ch;
while(true){
	cin >> ch;
	if(ch == '=') break;
	if(ch == ' ') continue;
	cout << ch;
}
cout << endl;

想一想会发生什么呢?
如果对break这些语法不太清楚可以上网自行查阅。

2. 字符的存储本质

字符都是可以用ascii码表示的,字符之间可以做加减法。

cout << (char)('a' + 1) << endl;

这会输出什么呢?
(char)的意思是类型转换,将’a’+1的计算结果从int转换成char
计算过程:

  1. 将’a’转换成int(参照ascii码值)
  2. 完成相加计算得到整数结果
  3. 转换回char类型

解题提示

A. Sum of Numbers

  1. char 类型的 ‘9’-‘0’ 等于多少呢?如何实现数字字符到数字的快速转换呢?
  2. 如何比较两个string是否相等?如何比较两个char数组内容是否相等(可能需要查阅一些函数)?

B. Counting Characters

https://blog.csdn.net/Victayria/article/details/127115939?spm=1001.2014.3001.5501

C. Ring

  1. 如何获取输入的string的长度
  2. 题目理解很关键:注意标题 ring

D. Finding a Word

  1. 如何用空格将一句话分割开?或许不用真的分割开,只需要两个下标就能表示一个单词的头尾?如何让第二个下标在没有发现空格的时候就保持一直++,直到发现空格,那么第一个下标和第二个下标形成的左闭右开区间就是一个单词
  2. 自行查阅string类型获取子串的函数