字符串数组的问题

macfan 2008-05-21 11:17:48
从键盘输入一串字符,存入到一个字符型数组中,再把数组中的字符逐个取出来转换成ASCII码值然后加上一个数(随便),然后在存入字符串,输出这个字符串.
我想这样能给一个文本加密.
请问具体怎样实现?
...全文
71 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuzl32 2008-05-22
  • 打赏
  • 举报
回复

#include <stdio.h>

int main( void )
{
int i = 0;
char line[21];
gets( line );

printf( "The line entered was: %s\n", line );

while(line[i]) { line[i] = line[i] + 32; i ++;}

printf( "The line encoded was: %s\n", line );

return 0;
}
macfan 2008-05-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yuzl32 的回复:]
C/C++ code
#include <stdio.h>

int main( void )
{
int i = 0;
char line[21];
gets( line );

printf( "The line entered was: %s\n", line );

while(line[i]) { line[i] = line[i] + 32; i ++;}//这的While(line[i])怎么解释 看不懂.

printf( "The line encoded was: %s\n", line );

return 0;
}
[/Quote]





刚才那个while语句好像检测数组中是否赋值, 但是如果这段中有空格的话,空格后面的就不能加密了.

这是我把您那个改写成C++的,这个程序的目的是为了加密一段字符.
/*先将一个字符串赋值给char型的数组,计算数组中赋值的长度,取第一个字符转换成ASCII码,
加一个固定的数后转换成字符输出,一直循环输出.*/
#include <iostream>
using namespace std;

int main()
{



int i;
char str[100];
freopen("test.in","r",stdin);
freopen("test.out","w",stdout);//打开程序I/O控制文件



cout<<"请输入要加密的语句:";
cin>>str;

i=0;
while(str[i])
{
str[i]=str[i]+2;
i++;
cout<<"加密后为:"<<str<<endl;
}


fclose(stdin);//关闭程序I/O文件
fclose(stdout);


return 0;
}


让循环自动判断数组是否被赋值,可以连续判断其后面多个,如果都未赋值则结束 ,怎么实现?
lin_style 2008-05-21
  • 打赏
  • 举报
回复
钱能介绍字符串那章有讲

1.定义怎样的数组?char型的一维数组?长度是不是要很长?
//一般都是定个足够长的长度,当然你也可以对超出的长度进行处理

2.怎么逐个取出字符?而且在申请数组空间时长度很长,而字符串很短,大多空间没用,怎样判断取到没字符的空间就停止.
//字符串是用\0表示停止。

3.怎样转换成ASCII码加上一个值,然后再转换成一个连着的字符串输出?
直接加上一个值
比如 char c='a';
c+=2;
cout<<c
macfan 2008-05-21
  • 打赏
  • 举报
回复
有几个地方请问怎样实现,1.定义怎样的数组?char型的一维数组?长度是不是要很长?
2.怎么逐个取出字符?而且在申请数组空间时长度很长,而字符串很短,大多空间没用,怎样判断取到没字符的空间就停止.
3.怎样转换成ASCII码加上一个值,然后再转换成一个连着的字符串输出?

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧