替换 Qt C++ 中编码字符串的"="
replacing "=" of encoded string in qt c++
我有一个使用base64编码的文本例如,我有一个字符串
string = "Hello"
它是编码
Encoded string is :"SGVsbG9XQ1Q="
,然后用" ||"预先准备字符串(2-Pipe字符)
现在问题是我要用|
(一个管道)在字符串末端替换该编码的字符串中的所有=
,而不是在任何字符串中间
我将如何仅在QT C 中使用|
的字符串末端替换所有=
?
这是我的代码:
#include <QCoreApplication>
#include <QString>
#include <QDebug>
#include <QByteArray>
QString base64_encode(QString string);
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString srcString = "HelloWCT";
QString encodedString = base64_encode(srcString);
qDebug() << "Encoded string is" << encodedString;
return a.exec();
}
QString base64_encode(QString string){
QByteArray ba;
ba = ba.append(string);
ba = ba.toBase64();
ba = ba.prepend("||");
return(ba);
}
如何仅在字符串结束时应用我的替换逻辑?有人可以帮助我使用逻辑吗?
我有逻辑,但不知道该如何应用?
逻辑是:如果有" ="它将用" |"替换为" =",它将开始从字符串的末端进行检查。并且它将在最后一个等同之前的另一个" =",然后再替换。Div>
您可以从末端到开始循环循环(并在找到'='
以外的其他字符时打破循环),将'='
的每一次CC_7替换为'|'
,类似这样:
QByteArray ba("SGVsbG9XQ1Q=");
for(int i=ba.length()-1; i>=0 && ba[i]=='='; i--)
ba[i] = '|';
我找到了精确的解决方案:
for(int i=ba.length()-1; i>=0 ;i--)
if(ba.at(i) == '=')
{
//replace with "|"
ba.replace(i,1,QByteArray("|"));
}
else
break;
相关文章:
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- 字符串操作 - 字符计数
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 在C++中使用 UTF-8 字符串和字符
- 如何使用SQLite将数据库中的值导出为C / C++中的字符串或字符?
- 如何在C++中为字符串添加字符?
- C++ 无法将 std::vector<BYTE> 转换为字符串或字符数组
- C++完全复制要字符串的字符列表,而不会忽略多个空格
- 我如何知道字符串中字符相对于英文字母的位置值?
- 如何将 VB.Net 字符串作为字符*传递给C++dll?
- 如何在 Visual C++ 中使用 UTF-8 字符串作为字符*?
- C++ 字符串单个字符
- 将字符串逐个字符插入矢量
- C++11+=当RHS有多个字符串或字符时,运算符不起作用
- MSVC UTF8字符串编码使用了不正确的代码点
- C++,字符串到字符数组与我教授的局限性
- 向字符串添加字符
- 字符串到字符* 函数
- 通过c++主字符**参数处理不同字符串编码的正确方法是什么
- 如何将字符串编码为8位ASCII字符