C++语言简单问题
#include<iostream>usingnamespacestd;voidmain(){chara;intb,n;for(b=1;b!=35;){cout<<"输入...
#include<iostream>
using namespace std;
void main()
{
char a;
int b,n;
for(b=1;b!=35;)
{
cout<<"输入明文的字数N及各个字母\n";
cin>>n;
for (int i=1;i<=n;i++)
{
cin>>a;
if(a>=97&&a<=118||a>=65&&a<=86)
a+=4;
else if(a<=122&&a>=119||a<=90&&a>=87)
a-=22;
cout<<a;
}
cout<<"input # to stop the programme or any key to continue"<<endl;
cin>>b;
}
}
想要做到输入一个单词,将每个字母都转换成它之后的第四个字母,字母表前后连接;
最好能编出首字母大写其余小写的效果
望达人帮助 展开
using namespace std;
void main()
{
char a;
int b,n;
for(b=1;b!=35;)
{
cout<<"输入明文的字数N及各个字母\n";
cin>>n;
for (int i=1;i<=n;i++)
{
cin>>a;
if(a>=97&&a<=118||a>=65&&a<=86)
a+=4;
else if(a<=122&&a>=119||a<=90&&a>=87)
a-=22;
cout<<a;
}
cout<<"input # to stop the programme or any key to continue"<<endl;
cin>>b;
}
}
想要做到输入一个单词,将每个字母都转换成它之后的第四个字母,字母表前后连接;
最好能编出首字母大写其余小写的效果
望达人帮助 展开
5个回答
展开全部
以下代码部分符合你的要求,急着去上课,抱歉,没有满足首字母大写。
我只是改动了你的源码两个小地方:1,把 b 的类型改为 char;2,把你的第二个for循环输出语句后面加了 <<endl;
说明:endl 用于清除缓存,因为每次输出时,待输出的字符存于缓存,你的再次输入的字符将上一个字符覆盖了,所以你的代码运行时只会显示最后一个字符后面的第四个字母。
兄弟,祝你好运!!
#include<iostream>
using namespace std;
int main()
{
char a,b;
int n;
for(b=1;b!=35;)
{
cout<<"输入明文的字数N及各个字母\n";
cin>>n;
for (int i=1;i<=n;i++)
{
cin>>a;
if(a>=97&&a<=118||a>=65&&a<=86)
a+=4;
else if(a<=122&&a>=119||a<=90&&a>=87)
a-=22;
cout<<a<<endl;
}
cout<<"input # to stop the programme or any key to continue"<<endl;
cin>>b;
}
}
我只是改动了你的源码两个小地方:1,把 b 的类型改为 char;2,把你的第二个for循环输出语句后面加了 <<endl;
说明:endl 用于清除缓存,因为每次输出时,待输出的字符存于缓存,你的再次输入的字符将上一个字符覆盖了,所以你的代码运行时只会显示最后一个字符后面的第四个字母。
兄弟,祝你好运!!
#include<iostream>
using namespace std;
int main()
{
char a,b;
int n;
for(b=1;b!=35;)
{
cout<<"输入明文的字数N及各个字母\n";
cin>>n;
for (int i=1;i<=n;i++)
{
cin>>a;
if(a>=97&&a<=118||a>=65&&a<=86)
a+=4;
else if(a<=122&&a>=119||a<=90&&a>=87)
a-=22;
cout<<a<<endl;
}
cout<<"input # to stop the programme or any key to continue"<<endl;
cin>>b;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-04-01
展开全部
参数
第一个参数是本字符串中用于比较的子字符串的起始位置
第二个参数是其长度
第三个参数是待比较字符串
第四个参数是待比较字符串中用于比较的子字符串的起始位置
第五个参数是其长度
如
a = s1.compare(0,2,s2,0,2);
就是比较s1从0开始,长度为2的子字符串和s2从0开始,长度为2的子字符串
另外,团IDC网上有许多产品团购,便宜有口碑
第一个参数是本字符串中用于比较的子字符串的起始位置
第二个参数是其长度
第三个参数是待比较字符串
第四个参数是待比较字符串中用于比较的子字符串的起始位置
第五个参数是其长度
如
a = s1.compare(0,2,s2,0,2);
就是比较s1从0开始,长度为2的子字符串和s2从0开始,长度为2的子字符串
另外,团IDC网上有许多产品团购,便宜有口碑
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的代码基本上是没有什么问题的。
只要做小小改动
主要是把b的类型从int改到char
另外cin.clear();是用来清除输入缓存的。
不懂请Hi我:)
#include<iostream>
using namespace std;
main()
{
char a,b;
int n;
for(b=1;b!='#';)
{
cout<<"êäèëÃ÷ÎÄμÄ×ÖêyN¼°¸÷¸ö×Öĸ\n";
cin>>n;
cin.clear();
for (int i=1;i<=n;i++)
{
cin>>a;
cin.clear();
if(a>=97&&a<=118||a>=65&&a<=86)
a+=4;
else if(a<=122&&a>=119||a<=90&&a>=87)
a-=22;
cout<<a;
}
cout<<"\ninput # to stop the programme or any key to continue"<<endl;
cin.clear();
cin>>b;
cout<<b<<endl;
cin.clear();
}
getchar();
}
只要做小小改动
主要是把b的类型从int改到char
另外cin.clear();是用来清除输入缓存的。
不懂请Hi我:)
#include<iostream>
using namespace std;
main()
{
char a,b;
int n;
for(b=1;b!='#';)
{
cout<<"êäèëÃ÷ÎÄμÄ×ÖêyN¼°¸÷¸ö×Öĸ\n";
cin>>n;
cin.clear();
for (int i=1;i<=n;i++)
{
cin>>a;
cin.clear();
if(a>=97&&a<=118||a>=65&&a<=86)
a+=4;
else if(a<=122&&a>=119||a<=90&&a>=87)
a-=22;
cout<<a;
}
cout<<"\ninput # to stop the programme or any key to continue"<<endl;
cin.clear();
cin>>b;
cout<<b<<endl;
cin.clear();
}
getchar();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看看这个,完全符合你的要求:
#include<iostream>
#include<string>
using namespace std;
void main()
{
string str;
printf("Input a line:");
cin>>str;
for(string::iterator iter = str.begin(); iter != str.end(); ++iter)
{
if( ((*iter >= 'a' ) && (*iter <= 'z')) ||((*iter >= 'A')&&(*iter <= 'Z')))
{
*iter += 5;
if(((*iter>'z')&&(*iter<='z'+5))|| ((*iter>'Z')&&(*iter<='Z'+5)))
{
*iter -= 26;
}
}
if (iter == str.begin())
{
if( (*iter >= 'a' ) && (*iter <= 'z'))
{
*iter -= 32;
}
}
}
cout<<str;
}
#include<iostream>
#include<string>
using namespace std;
void main()
{
string str;
printf("Input a line:");
cin>>str;
for(string::iterator iter = str.begin(); iter != str.end(); ++iter)
{
if( ((*iter >= 'a' ) && (*iter <= 'z')) ||((*iter >= 'A')&&(*iter <= 'Z')))
{
*iter += 5;
if(((*iter>'z')&&(*iter<='z'+5))|| ((*iter>'Z')&&(*iter<='Z'+5)))
{
*iter -= 26;
}
}
if (iter == str.begin())
{
if( (*iter >= 'a' ) && (*iter <= 'z'))
{
*iter -= 32;
}
}
}
cout<<str;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//用C编的,一次转一个单词。
#include<stdio.h>
#include<string.h>
void main()
{
char s[81];
int i,k;
gets(s);
for(i=0;i<strlen(s);i++)
if(s[i]>='a'&&s[i]<='z')
{
k=s[i]+4-'a';
k=k%26;
s[i]='a'+k;
}
else if (s[i]>='A'&&s[i]<='Z')
{
k=s[i]+4-'A';
k=k%26;
s[i]='A'+k;
}
printf("%s\n",s);
}
#include<stdio.h>
#include<string.h>
void main()
{
char s[81];
int i,k;
gets(s);
for(i=0;i<strlen(s);i++)
if(s[i]>='a'&&s[i]<='z')
{
k=s[i]+4-'a';
k=k%26;
s[i]='a'+k;
}
else if (s[i]>='A'&&s[i]<='Z')
{
k=s[i]+4-'A';
k=k%26;
s[i]='A'+k;
}
printf("%s\n",s);
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询