C++에서 암호화/암호 해독 프로그램을 만들고 암호화를 사용자 지정하기 위해 사용자 제공 번호 세 개를 사용합니다. 그 기반으로 기능을 cplusplus.com에 isdigit에()에 대해 읽고, 제작 :C++ 인수가 숫자 인 경우 참조
bool is_numeric(char *string)
{
int sizeOfString = sizeof(string);
int iteration = 0;
bool isNumeric = true;
while(iteration < sizeOfString)
{
if(!isdigit(string[iteration]))
{
isNumeric = false;
break;
}
iteration++;
}
return isNumeric;
}
그러나, 작동하지 않습니다. 숫자 나 숫자가 아닌 문자를 사용하더라도 여전히 false를 반환합니다. 내 접근 방식에 문제가있다.
문자열 문자열을 호출하는 것은 약간 위험합니다. std를 사용하면 특히 네임 스페이스 표준을 사용하는 경우 몇 가지 문제가 발생할 수 있습니다. –
'use namespace std'를 사용하지 않습니다. 나는 항상'std :: whatever'을 사용합니다. 이것은 일을하는 올바른 방법 인 것 같습니다. – Igor
sizeof는 호출 된 유형의 컴파일 시간 크기를 반환합니다. 문자열 변수는'char *'타입을 가지므로'char *'변수의 크기를 얻게됩니다. C 배열의 경우 배열의 유형도 해당 크기입니다. E.G. 'int foo [100]'의 타입은 100 개의 int 배열입니다. 이 배열들이 많은 상황에서 포인터에 조용히 쇠퇴하는 곳이 있음을 주목하십시오. http://ideone.com/gYqUiY가 유용 할 수 있습니다. – Lalaland