私は、ユーザーが入力した各文字を '*'に変換するC++の関数を作成しようとしました。しかし、私が.exeファイル(CMD)を実行すると、パスワードを尋ねられますが、単語を入力すると「Debug assertion failed」というエラーが表示されます。なぜこのようなことが起こるのか?C++の暗号化機能
ここに私のコードです:
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "string"
#include "ctype.h"
using namespace std;
void encrypt(char string[], int len)
{
for (int count = 0; count < len; count++)
if (isalpha (string [count]))
string[count] = '*';
}
int _tmain(int argc, _TCHAR* argv[])
{
char Text[40];
int Size = strlen(Text);
cout << "Enter your desired password: ";
cin >> Text;
encrypt(Text, Size);
cout << Text << endl;
_getch();
return 0;
}
デバッガを使用してコードをステップ実行しようとしましたか?エラーが投げられたときに? – RvdK
あなたの質問はWindows固有のものです。あなたのコードはPosixシステム上で動作しません! Linuxはhttp://linux.die.net/man/3/cryptを提供します。 –
これは私の暗号化のようには見えません。あなたの関数は文字列中のすべてのアルファベット文字をアスタリスクに変換するだけです。 – IanNorton