注册 登录
编程论坛 C++教室

[求助]一道C++的题目

cloudbian 发布于 2007-08-03 16:20, 549 次点击
把每个字符往后移一位,例如: i am tt变成 j bn uu请利用这个原理和字符的的储存原理,这个程序怎么写啊特别是句子改变后空格输出的还是空格
求助!!!!!!!!!!!!!!
7 回复
#2
bupthehe2007-08-03 17:00
ascII码加一位就行了啊,空格的话就不加啊
#3
aipb20072007-08-03 17:38

getline(cin,str);
for (string::sizetype i = 0;i < str.size();++i)
if (isalpha(str[i]))
str[i]+=1;

#4
cfd2007-08-03 18:15

刚学C++...不是很懂楼上的.自己写了个简单点的,通过编译且可以得到结果,就是结果出来后报错...

麻烦各位大大帮忙看看,谢谢.

#include<iostream>
using namespace std;

const int MAX=50;

int main()
{
char *str=new char[MAX];
char *p=str;

do
{
cin.get(*str);
}
while(*(str++)!='\n');
cout<<endl;

while(*p!='\n')
{
if(*p!=' ')cout<<++(*p);
else cout<<' ';
p++;
}
cout<<endl;

delete []str;

return 0;
}





[此贴子已经被作者于2007-8-3 18:17:09编辑过]

#5
antter2007-08-03 18:56
你的str因为while(*(str++)!='\n')指针飘掉了.已无法delete[]
#6
medicihophy2007-08-03 19:27
唉,这个习惯不好啊,应该是编C编多了吧,大不了用*(str+i++)也好些
#7
cfd2007-08-03 20:02

原来如此,虽然不太明白5楼的意思,但经6楼指点已经解决.

感谢楼上两位.

#8
wangweicoin2007-08-05 14:12

指针飘掉了是什么意思?

1