来自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] != '@');
但运行报错,到目前为止还没有找到原因……先记下来等过一阵学得更多了再回头看。
有大佬知道原因可以帮帮我吗?