问题描述
- C/C++ 文件加密(encrypt)
- 文件加密(encrypt)
对信息进行加密,可提高信息传输的安全性。正是由于它的重要用途,人们发明了各种各样的加密方式。其中一种方式是,对文中单词进行逆序处理。请你写一个程序,对已加密的文本进行解密。#include<stdio.h>#include<string.h> void Decode(){ int jiNabk; char str[1000]; scanf(""%d ""&N); if(N>50000) printf(""????????""); for(j=0;j<N;j++) { printf("" ""); gets(str); a=0; for(i=0;i<=strlen(str);i++) { if(str[i]==' '||i==strlen(str)) { if(i==strlen(str)) b=strlen(str); else b=i-1; for(k=b;k>=a;k--) { printf(""%c""str[k]); } printf("" ""); a=b+2; } } }}int main(){ freopen(""encrypt.in""r""stdin); freopen(""encrypt.out""w""stdout); Decode(); return 0;}
运行时出现两个问题,
一个是输入一个空格会打印出两个;
另一个是如果空格是出现在第一行开头,则不会打印。
求解决方法
解决方案
C#文件加密
9.2.1 文件加密函数Encrypt_File
解决方案二:
1、把if(str[i]==' '||i==strlen(str)) 改为if(i==strlen(str))
解决方案三:
变量b都没有初始化,怎么就在选择分支语句里赋值了呢?
解决方案四:
变量b都没有初始化,怎么就在选择分支语句里赋值了呢?
解决方案五:
修改部分的代码:
for(i=0;i<strlen(str);i++) { if(str[i]==' '||i==strlen(str)-1) { if(i==0) { printf("" ""); a=1; continue; } if(i==strlen(str)-1) b=strlen(str)-1; else b=i-1; for(k=b;k>=a;k--) { printf(""%c""str[k]); } printf("" ""); a=b+2; } }
时间: 2024-11-29 23:27:22