그래서 사용자가 입력 한 각 문자를 '*'로 변환하는 C++ 함수를 만들려고했습니다. 하지만 .exe 파일 (CMD)을 실행할 때 비밀번호를 묻지 만 단어를 입력하면 오류가 발생합니다. "디버그 어설 션이 실패했습니다." 왜 이런 일이 일어나는 지 아십니까? 문자열의 아이폰에 돌려 준다 "C++의 암호화 함수
0
A
답변
2
그냥 CIN >> 텍스트"줄 뒤에 INT 크기 =의 나 strlen (텍스트) "이동 : 여기
내 코드입니다 사용자가 텍스트를 입력 한 후 '\ 0'을 검색하여.이 작업을 수행해야합니다.char Text[40];
cout << "Enter your desired password: ";
cin >> Text;
int Size = strlen(Text);
encrypt(Text, Size);
0
나 strlen (텍스트)
#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;
}
0
당신은 텍스트를 입력하기 전에에서 텍스트 크기를했다.
,536을...
int _tmain(int argc, _TCHAR* argv[])
{
char Text[40];
// int Size = strlen(Text); // to early
cout << "Enter your desired password: ";
cin >> Text;
int Size = strlen(Text); // now Text is filled and the Size will not change.
encrypt(Text, Size);
cout << Text << endl;
_getch();
return 0;
}
1
for 루프는 입력 텍스트의 길이를 고려하지 않습니다. 대신 무작위 값으로 가득 찬 초기화되지 않은 char 배열에 대해 strlen을 호출하여 Size를 제공합니다. 컴파일러가이에 대해 경고해야합니다. 항상 경고를 무시하지 마십시오. 이 NUL (0x0으로) 아마 그래서 당신에게 런타임 오류를 제공하여 스택의 다른 부분으로 40 문자 공간의 끝 떨어져 떨어지고 (분할 위반을 찾을 때까지 나 strlen으로
char Text[40];
int Size = strlen(Text);
문자의 순서를 다음과 텍스트는 사용자가 입력되지 않은 것처럼)
0
당신은, 너무 일찍 라인
int ln 〓 strlen(Text);
을 넣어. 줄 끝까지 이동해야합니다.
cin >> Text;
관련 문제
- 1. c의 scanf() 함수
- 2. Objective-C의 OR 함수
- 3. 목표 - C의 재진입 함수
- 4. c의 인라인 함수
- 5. C의 일반 함수 포인터
- 6. Objective-C의 함수 구문
- 7. Objective C의 함수 포인터
- 8. 대칭 암호화 알고리즘 함수
- 9. 암호화 JQuery와 .load() 함수
- 10. C# 및 Objective C의 문자열 암호화
- 11. 암호화, C의 암호 해독 ++ (은 OpenSSL)
- 12. 함수를 C의 함수 필드에 할당
- 13. Objective-C의 비 멤버 함수
- 14. C의 인라인 함수 및 호출 비용
- 15. 구조에서 합리적인 수를 줄이기위한 C의 함수
- 16. C의 모듈러스 (수학 함수)에 해당?
- 17. 가변 인수 형식이 c의 va_arg 함수
- 18. Objective-c의 함수 선언 및 정의
- 19. Objective-C의 iDynamo Reader에서 암호화 된 데이터 읽기
- 20. 간단한 암호화/
- 21. C의 -> Objective-C의 점 표기법과 동일합니다.
- 22. C의 변수 아티?
- 23. C의 버퍼에서 어셈블리 호출
- 24. C의 블룸 필터에 대한 범용 해시 함수 구현
- 25. C의 다른 함수에 함수 전달. 내가 뭘 잘못하고 있니?
- 26. Objective-C의 함수 이름 앞에 "+"와 "-"의 차이
- 27. objective-c의 함수 만 포함하는 파일은 어떻게 만듭니 까?
- 28. objective-c의 다른 프로그래머에게 어떻게 함수 이름을 말합니까?
- 29. Objective-C의 "개인 메서드"또는 정적 함수. 어느 것을 사용해야합니까?
- 30. Objective-C의 함수 호출을 통해 인수 값이 손상되었습니다.
디버거를 사용하여 코드를 단계별로 실행 해 보았습니까? 어떤 오류가 발생 했습니까? – RvdK
귀하의 질문은 Windows에만 해당됩니다. Posix 시스템에서 코드가 실행되지 않습니다! 리눅스는 http://linux.die.net/man/3/crypt와 훨씬 더 많은 것을 제공합니다 –
이것은 나에게 암호화처럼 보이지 않습니다. 함수는 문자열의 모든 영문자를 별표로 변환하는 것으로 보인다. – IanNorton