文件头

cstring 与 string

第六单元 字符串 - 图1

获取带空格的输入

  1. char c[105];
  2. string s; //string 是 char 数组的封装,不用考虑初始长度。
  3. //如何获取带空格的输入?
  4. // cin.getline(c,105) c为容器,装 105 个字符
  5. // getline(cin,s) 动态扩展长度(即没有长度限制)
  6. // 如何获取字符串的长度
  7. // strlen() 函数式处理
  8. // s.length() 面向对象处理

例 6.1(洛谷 P5733)

大家都知道一些办公软件有自动将字母转换为大写的功能。 输入一个长度不超过 100 且不包括空格的字符串。 要求将该字符串中的所有小写字母变成大写字母并输出。 例如输入 Luogu4! ,输出 LUOGU4! 。

第六单元 字符串 - 图2

例 6.2(洛谷 P1914)

凯撒密码是由原文字符串(由不超过 50 个小写字母组成)中每 个字母向后移动 n 位形成的。z 的下一个字母是 a,如此循环。 给出 n 和移动前的原文字符串,请你求出密码。

  1. int n; char s[60];
  2. scanf("%d %s", &n, s); //读入字符串
  3. for (int i = 0 ; s[i] ; i++)
  4. putchar((s[i] - 'a' + n) % 26 + 'a'); // 计算偏移量并还原