日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

【日常踩坑】使用空字符串ciphertext[i]来赋值报错

發(fā)布時間:2024/3/13 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【日常踩坑】使用空字符串ciphertext[i]来赋值报错 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

項目場景:

一道初級練習(xí)題如下,

為了使電文保密,最簡單的方法就是按照一定的規(guī)律將電文轉(zhuǎn)換 成密碼,收報人在根據(jù)約定的規(guī)律將電文譯回原文。例如可按照如下規(guī)律 將電文編程密碼: 對大寫字母變成其后面的第四個字母,如A->E,W->A; 小寫字母變成其后的第3個字母,如a->d,x->a。 請根據(jù)題意,編寫代碼實現(xiàn)將原文變?yōu)槊艽a的功能。


問題描述

ciphertext無法輸出

?if (plaintext[i] + 3 > 'z'){ciphertext [i]= ('a' - 1 + (plaintext[i] + 3) % 'z');}

原因分析:

空字符串不能用ciphertext[i]的方式來賦值

使用了ciphertext[i]來賦值,但是ciphertext并沒有在初始化時分配空間或初始化為特定大小,所以ciphertext[i]并沒有可以修改的空間,因此會報錯。


解決方案:

解決方法之一是使用push_back()函數(shù)來將字符添加到ciphertext的末尾,如:

ciphertext.push_back('A'+plaintext[i]%90);

還可以使用+=運算符來添加字符到ciphertext末尾, 如

ciphertext += 'A'+plaintext[i]%90;

?完整代碼如下

#include <iostream> #include <string> using namespace std;void fun01(); int main() {fun01();return 0; }void fun01() {string plaintext;string ciphertext;cout << "please enter the plaintext" << endl;cin >> plaintext;for (int i = 0; i < plaintext.length(); i++){if (plaintext[i] >= 'A' && plaintext[i] <= 'Z'){if (plaintext[i] + 4 > 'Z'){ciphertext += ('A' - 1 + (plaintext[i] + 4) % 'Z');}else{ciphertext += plaintext[i] + 4;}}if (plaintext[i] >= 'a' && plaintext[i] <= 'z'){if (plaintext[i] + 3 > 'z'){ciphertext += ('a' - 1 + (plaintext[i] + 3) % 'z');}else{ciphertext += plaintext[i] + 3;}}}cout << "ciphertext=" << ciphertext << endl; }

總結(jié)

以上是生活随笔為你收集整理的【日常踩坑】使用空字符串ciphertext[i]来赋值报错的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。