C++学习笔记(三)——关于cin.get() 顺便求助各位大佬

来自C++Primer编程练习6.11-1

编写一个小程序,读取键盘输入,直到遇到@符号为止,并回显输入(数字除外),同时将大写字符转换为小写,将小写字符转换为大写。

#include<iostream>

using namespace std;

int main()

{
  char a[50];
  char ch;
  int i = 0;
  do
  {
    cin.get(ch);
    a[i] = ch;
    i++;
  }

  while(ch != '@');
  i = 0;
  int j = 97-65;
  while(a[i] != '@')
  {
    if(a[i] >= '0' && a[i] <= '9')
    {
      i++;
      continue;
    }
    else if(a[i] >= 'A' && a[i] <= 'Z')
    {
      a[i] = a[i]+j;
    }
    else if(a[i] >= 'a' && a[i] <= 'z')
    {
      a[i] = a[i]-j;
    }
    cout << a[i++];
  }
}

 

一开始的写法是:

  char ch[50];
  int i = 0;
  do
  {
    cin.get(ch[i]);
    i++;
  }

  while(ch[i] != '@');

但运行报错,到目前为止还没有找到原因……先记下来等过一阵学得更多了再回头看。

有大佬知道原因可以帮帮我吗?

上一篇:二分查找模板


下一篇:生成随机密码