异空龙 @ 2019-07-05 21:52:36
为什么我的程序无法输入字符串?求各位帮帮忙指点一下
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int n=0;
char a[50]={0},m[50]={0};
cin>>n;
gets(a);
for(int i=0;i<50;i++)
{
if(a[i]+n>91)
{
m[i]=a[i]+n-25;
}
else
{
m[i]=a[i]+n;
}
}
for(int c=0;c<50;c++)
{
cout<<m[c];
}
return 0;
}
by t162 @ 2019-07-05 22:01:43
请不要试图使用gets。
by yu__xuan @ 2019-07-05 22:01:44
用
by 饼干君 @ 2019-07-05 22:04:53
getline也可以
by HeartBlock_Love @ 2019-07-05 23:22:40
@异空龙 可以压一下行吗?用cin
by 1saunoya @ 2019-07-06 01:53:39
看着有点变扭是真的
by 异空龙 @ 2019-07-06 12:09:53
谢谢,我试一下
by kub_inst @ 2019-07-25 09:13:01
getchar缓冲一下
by 异空龙 @ 2019-08-16 19:59:06
谢谢各位,我做出来了。
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int n=0;
char a[50]={0},m[50]={0};
cin>>n;
cin>>a;
for(int i=0;i<50;i++)
{
if(a[i]+n>90&&a[i]<=90&&a[i]>=65)
{
m[i]=a[i]+n-26;
}
else if(a[i]+n<=90&&a[i]<=90&&a[i]>=65)
{
m[i]=a[i]+n;
}
else if(a[i]+n>122&&a[i]<=122&&a[i]>=97)
{
m[i]=a[i]+n-26;
}
else if(a[i]+n<=122&&a[i]<=122&&a[i]>=97)
{
m[i]=a[i]+n;
}
}
for(int c=0;c<50;c++)
{
cout<<m[c];
}
return 0;
}