是否可以修改字符串输入? [关闭]

问题描述 投票:-3回答:1

我想构建一个程序来保存文本到文件,但我希望我的程序保护或加密文本的内容,例如,如果用户输入“salamence”到程序,程序将输出(到文件中) “hjkjupfqp”或类似的东西,所以人们无法读取它,除非他们可以访问程序(我希望程序也能够解密文本文件)所以在c ++中可以逐个读取字符串输入字符并将它们修改为另一个字符,以及如何做到这一点?

c++ string
1个回答
-1
投票

字符串是放在容器中的字符序列,其中包含其他内容。字符本身可以通过[]运算符访问。 char基本上是一个可以显示的8位整数。一个整数可以算术运算(+-*,...),bit-wise(&^|<<,...)等。

所以你可以这样做:

#include <iostream>
#include <string>
using namespace std; //bad idea, but simplifies stuff
int main(){
    string s;
    cin>>s; //reads the string
    for(int i=0;i < s.size;i++){ //loops through all characters of the string
        s[i]++; //adds one to the string
    }
    cout<<s; //outputs the modified string
}

这将把“abc”变成“bcd”,这是一种相当愚蠢的加密形式,但它证明了这个概念。

要解密,您需要复制循环,但用s[i]++替换s[i]--

既然你似乎是初学者,我实际上建议使用c风格的字符串,但这超出了这个问题的范围。

© www.soinside.com 2019 - 2024. All rights reserved.