BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #6660同步于 2008/5/12
CPP机器人发帖

[合集] [菜鸟求教]c++中字符串加密

Xer
2008/5/12镜像同步0 回复
☆─────────────────────────────────────☆ zhhxu (bigbird) 于 (Tue May 6 17:33:42 2008) 提到: 字符加上一个数字,应该是ASC码相加,强制类型转换语句该怎么写 谢谢 ☆─────────────────────────────────────☆ purevirtual (天之健) 于 (Tue May 6 17:41:27 2008) 提到: 不需要强制转换,会自动转换的; char a='a'; a +=1; 【 在 zhhxu (bigbird) 的大作中提到: 】 : 字符加上一个数字,应该是ASC码相加,强制类型转换语句该怎么写 : 谢谢 ☆─────────────────────────────────────☆ purevirtual (天之健) 于 (Tue May 6 17:41:44 2008) 提到: ps:赞lz的qmd 【 在 purevirtual (天之健) 的大作中提到: 】 : 不需要强制转换,会自动转换的; : char a='a'; : a +=1; : ................... ☆─────────────────────────────────────☆ zhhxu (bigbird) 于 (Tue May 6 17:46:19 2008) 提到: 谢谢 要求字符串循环加4,9,6,2,8,7,3 输出加密后的字符串 下面的问题出在哪?? 多谢指导 #include<iostream.h> void ps(char* source,int* plus); void main() { char a[]="the result of 3 and 2 is not 8"; int b[7]={4,9,6,2,8,7,3}; ps(a,b); } void ps(char* source,int* plus) { int size1=sizeof(source)/sizeof(char*); int size2=sizeof(plus)/sizeof(int*); int *c; for(int i=0;i<size1;i++) { if(i%size2==0) c[i]=source[i]+plus[size2-1]; else c[i]=source[i]+plus[i%size2]; } for(int m=0;m<size1;m++) cout<<(char)c[m]<<" "; } 【 在 purevirtual 的大作中提到: 】 : 不需要强制转换,会自动转换的; : char a='a'; : a +=1; ☆─────────────────────────────────────☆ purevirtual (天之健) 于 (Tue May 6 17:52:34 2008) 提到: 拜托,是main函数吧? 【 在 zhhxu (bigbird) 的大作中提到: 】 : 谢谢 : 要求字符串循环加4,9,6,2,8,7,3 : 输出加密后的字符串 : ................... ☆─────────────────────────────────────☆ zhhxu (bigbird) 于 (Tue May 6 17:56:20 2008) 提到: 是啊,不好意思 然后问题在哪?? 【 在 purevirtual 的大作中提到: 】 : 拜托,是main函数吧? ☆─────────────────────────────────────☆ purevirtual (天之健) 于 (Tue May 6 18:02:46 2008) 提到: 大致看了下: 这样改: #include<iostream.h> using namespace std; void ps(char* source,int* plus); int main() { char a[]="the result of 3 and 2 is not 8"; int b[7]={4,9,6,2,8,7,3}; ps(a,b); cin.get(); return 0; } void ps(char* source,int* plus) { int size1=sizeof(source)/sizeof(char); int size2=sizeof(plus)/sizeof(int); int c[size1]; for(int i=0;i<size1;i++) { if(i%size2==0) c[i]=source[i]+plus[size2-1]; else c[i]=source[i]+plus[i%size2]; } for(int m=0;m<size1;m++) cout<<(char)c[m]<<" "; } 【 在 zhhxu (bigbird) 的大作中提到: 】 : 谢谢 : 要求字符串循环加4,9,6,2,8,7,3 : 输出加密后的字符串 : ................... ☆─────────────────────────────────────☆ zhhxu (bigbird) 于 (Tue May 6 18:08:21 2008) 提到: 谢谢先 我试了下,还是不行。是不是我vc有问题啊 error C2057: expected constant expression error C2466: cannot allocate an array of constant size 0 error C2133: 'c' : unknown size 【 在 purevirtual 的大作中提到: 】 : 大致看了下: : 这样改: : #include<iostream.h> : ................... ☆─────────────────────────────────────☆ purevirtual (天之健) 于 (Tue May 6 18:11:52 2008) 提到: 不好意思,刚才是gcc的一个bug 你把 ps函数里c的声明改成这个就行了: int *c=new int[size1]; 【 在 zhhxu (bigbird) 的大作中提到: 】 : 谢谢先 : 我试了下,还是不行。是不是我vc有问题啊 : error C2057: expected constant expression : ................... ☆─────────────────────────────────────☆ zhhxu (bigbird) 于 (Tue May 6 18:16:19 2008) 提到: 终于没有报错了,不过结果还有点问题,可能循环有问题,我再看看 谢谢了,大牛 【 在 purevirtual 的大作中提到: 】 : 不好意思,刚才是gcc的一个bug : 你把 : ps函数里c的声明改成这个就行了: : ................... ☆─────────────────────────────────────☆ purevirtual (天之健) 于 (Tue May 6 18:17:48 2008) 提到: 恩,不客气,建议你对照参考书做..... ps:我不是什么牛人,牛人都影身了..... 【 在 zhhxu (bigbird) 的大作中提到: 】 : 终于没有报错了,不过结果还有点问题,可能循环有问题,我再看看 : 谢谢了,大牛 ☆─────────────────────────────────────☆ zhhxu (bigbird) 于 (Tue May 6 18:20:57 2008) 提到: 习题没有答案,也没去找,所以就不会了 【 在 purevirtual 的大作中提到: 】 : 恩,不客气,建议你对照参考书做..... : ps:我不是什么牛人,牛人都影身了..... ☆─────────────────────────────────────☆ purevirtual (天之健) 于 (Tue May 6 18:25:20 2008) 提到: 可是一些基本的东西你的程序里也有欠缺之处, 比如头文件:iostream.h为老式风格,最好用iostream 函数里计算数组长度时:应该用sizeof(array)/sizeof(char)才对.... 【 在 zhhxu (bigbird) 的大作中提到: 】 : 习题没有答案,也没去找,所以就不会了 ☆─────────────────────────────────────☆ zhhxu (bigbird) 于 (Tue May 6 18:27:30 2008) 提到: 谢谢,以后会注意了 初学,所以基本还是都稀里糊涂 【 在 purevirtual 的大作中提到: 】 : 可是一些基本的东西你的程序里也有欠缺之处, : 比如头文件:iostream.h为老式风格,最好用iostream : 函数里计算数组长度时:应该用sizeof(array)/sizeof(char)才对....
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。