【发布时间】:2020-08-27 05:47:04
【问题描述】:
我正在编写一个程序来从字符数组中删除字符“&”(如果存在)并显示输出。 这是我的代码:
#include <iostream>
#include <string>
using namespace std;
void decrypt(char mess[1024])
{
int i = 0;
int decmp = 0;
int len = strlen(mess);
char decmess[256] = {0};
while (i < len)
{
if (strcmp(&mess[i], "&") == 0) {
i++;
} else {
decmess[decmp] = mess[i];
i++;
decmp++;
}
}
cout << decmess << endl;
}
int main(int argc, char *argv[])
{
char encmess[1024] = {0};
cout << "Enter message to decrypt" << endl;
cin.getline(encmess, 1024);
decrypt(encmess);
}
但它只是不工作只有“&”从字符串的最后一个被删除(如果存在)。
示例输入/输出:
input: sg&shx&f
output: sg&sh&f
input: dh&st&
output: dh&st
请帮忙!!!
【问题讨论】:
-
strcmp(&mess[i], "&"). &mess[i] 是混乱索引 i 的地址。觉得应该是一团糟[i]
-
将
if (strcmp(&mess[i], "&") == 0)更改为if (mess[i] =='&') -
如果这确实是一个 C++ 问题,请使用
<string>和<algorithm>。